From: "Saved by Windows Internet Explorer 8"
Subject: Planning & Program Review
Date: Sun, 9 Oct 2011 08:33:15 -0700
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0072_01CC865E.16C1F700"
X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7600.16807

This is a multi-part message in MIME format.

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Plan.aspx/View/5ab7e6de-5a4f-461d-99f8-38f7e8c8032b

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>Planning & =
Program Review</TITLE>
<META content=3D"text/html; charset=3Dutf-8" =
http-equiv=3DContent-Type><LINK=20
rel=3Dstylesheet type=3Dtext/css=20
href=3D"https://www.craftonhills.edu/ProgramReview/Public/css/Site.css"=20
media=3Dscreen,print></LINK><LINK rel=3Dstylesheet type=3Dtext/css=20
href=3D"https://www.craftonhills.edu/ProgramReview/Public/css/styles.css"=
=20
media=3Dscreen,print></LINK><LINK rel=3Dstylesheet type=3Dtext/css=20
href=3D"https://www.craftonhills.edu/ProgramReview/Public/css/editor.css"=
=20
media=3Dscreen,print></LINK><LINK rel=3Dstylesheet type=3Dtext/css=20
href=3D"https://www.craftonhills.edu/ProgramReview/Public/themes/base/jqu=
ery.ui.all.css"></LINK><LINK=20
rel=3Dstylesheet type=3Dtext/css=20
href=3D"https://www.craftonhills.edu/ProgramReview/Public/css/ui.spinner.=
css"></LINK><LINK=20
rel=3Dstylesheet type=3Dtext/css=20
href=3D"https://www.craftonhills.edu/ProgramReview/Public/css/jquery.jgro=
wl.css"></LINK>
<SCRIPT type=3Dtext/javascript=20
src=3D"https://www.craftonhills.edu/ProgramReview/Public/javascript/jquer=
y-1.6.1.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"https://www.craftonhills.edu/ProgramReview/Public/javascript/jquer=
y-ui-1.8.13.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"https://www.craftonhills.edu/ProgramReview/Public/javascript/jquer=
y.form.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"https://www.craftonhills.edu/ProgramReview/Public/javascript/ui.sp=
inner.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"https://www.craftonhills.edu/ProgramReview/Public/javascript/jquer=
y.jgrowl.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"https://www.craftonhills.edu/ProgramReview/Public/javascript/ckedi=
tor/ckeditor.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"https://www.craftonhills.edu/ProgramReview/Public/javascript/ckedi=
tor/adapters/jquery.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"https://www.craftonhills.edu/ProgramReview/Public/javascript/site.=
js"></SCRIPT>

<SCRIPT type=3Dtext/javascript>
        var ProgramReview =3D {
            datePicker : {
                image : '/ProgramReview/Public/images/calendar.gif',
                defaultDate: new Date('10/09/2011'),
                minDate: new Date('01/01/1753'),
                maxDate: new Date('12/31/9999')
            }
        };
    </SCRIPT>

<META name=3DGENERATOR content=3D"MSHTML 8.00.7600.16853"></HEAD>
<BODY>
<DIV class=3Dpage>
<DIV id=3Dheader>
<DIV id=3Dtitle>
<DIV>Planning &amp; Program Review</DIV></DIV>
<DIV id=3Dlogindisplay>[ <A=20
href=3D"https://www.craftonhills.edu/ProgramReview/Account.aspx/LogOn">Lo=
g On</A>=20
] </DIV>
<DIV id=3Dmenucontainer>
<UL id=3Dmenu>
  <LI><A=20
  =
href=3D"https://www.craftonhills.edu/ProgramReview/Home.aspx">Home</A></L=
I></UL></DIV></DIV>
<DIV id=3Dmain>
<H1><A=20
href=3D"https://www.craftonhills.edu/ProgramReview/Entity.aspx/Plans/14c6=
f4dd-7352-43de-9995-d518ab933a3f">Plans=20
for EDTC</A> &gt;&gt; Economic Development and Corporate Training =
(EDCT)</H1>
<DIV id=3Dediting-options>
<P>This page is suitable for printing. Just use the print option in your =

browser<SPAN id=3Dprint-page></SPAN>.</P></DIV>
<DIV class=3Ddisplay-row>
<DIV class=3Ddisplay-label><LABEL for=3DName_:>Name :</LABEL></DIV>
<DIV class=3Ddisplay-field>Economic Development and Corporate Training =
(EDCT)=20
</DIV></DIV>
<DIV class=3Ddisplay-row>
<DIV class=3Ddisplay-label><LABEL for=3DPrincipal_Preparer_:>Principal =
Preparer=20
:</LABEL></DIV>
<DIV class=3Ddisplay-field>Dr. Matthew Isaac, Executive Director =
</DIV></DIV>
<DIV class=3Ddisplay-row>
<DIV class=3Ddisplay-label><LABEL =
for=3DProgress_Report_Preparer_:>Progress Report=20
Preparer :</LABEL></DIV>
<DIV class=3Ddisplay-field></DIV></DIV>
<DIV class=3Ddisplay-row>
<DIV class=3Ddisplay-label><STRONG>Progress Report Type :</STRONG> =
</DIV>
<DIV class=3Ddisplay-field>Objective Level Report </DIV></DIV>
<DIV class=3Ddisplay-row>
<P><STRONG>Version:</STRONG> 36<BR><STRONG>Group:</STRONG> 2010 -=20
2011<BR><STRONG>Type:</STRONG> District Program Review<BR><STRONG>Last =
Modified=20
On:</STRONG> 7/6/2011 12:11:18 PM<BR><STRONG>Last Modified By:</STRONG> =
Matthew=20
Isaac<BR><STRONG>State:</STRONG> Submitted (<SPAN=20
class=3Dfinalized>Finalized</SPAN>)<BR><STRONG>State By:</STRONG> =
Matthew Isaac=20
</P></DIV>
<H2>Instructions</H2>
<DIV></DIV>
<H2>1. Mission</H2>
<DIV>
<OL style=3D"LIST-STYLE-TYPE: lower-alpha" start=3D1>
  <LI>Assume the reader knows nothing about your unit. Please describe =
concisely=20
  its mission.</LI></OL></DIV>
<DIV class=3Delement-display>
<P>The mission of the Economic Development and Corporate Training (EDCT) =
is to=20
stimulate the economic prosperity of the Inland Empire through workforce =

development. This mission will be achieved by:<BR>a. offering customized =

training solutions that meets the human capital development needs of =
regional=20
employers;<BR>b. providing innovative job training to the workforce in =
emerging=20
technologies and high growth areas to foster economic prosperity in the=20
region;<BR>c. providing labor market intelligence for California =
community=20
colleges to respond to workforce training needs; and,<BR>d. building=20
partnerships to obtain local/state/federal funds necessary for preparing =
a=20
highly skilled workforce through short-term =
training.<BR>&nbsp;</P></DIV>
<H2>2. Description</H2>
<DIV>
<OL style=3D"LIST-STYLE-TYPE: lower-alpha" start=3D1>
  <LI>Please describe concisely the following characteristics of your =
unit. Feel=20
  free to use both narrative and quantitative information.=20
  <OL style=3D"LIST-STYLE-TYPE: lower-roman" start=3D1>
    <LI>Purpose</LI>
    <LI>Functions or services</LI>
    <LI>Clientele(s)</LI>
    <LI>Value of your services to the clientele(s), the Colleges, and =
the=20
    District</LI>
    <LI>Organizational structure and number of personnel by =
function</LI>
    <LI>Annual budget by object code for the last three years</LI>
    <LI>Hours of operation, location, and other pertinent service=20
    characteristics</LI>
    <LI>Significant changes, if any, since the last program=20
review</LI></OL></LI></OL></DIV>
<DIV class=3Delement-display>
<P>As an independent and self-supporting arm of the District, the =
Economic=20
Development and Corporate Training Division carries out the economic and =

workforce development mission. This Division has two dedicated training=20
facilities: the Professional Development Center (PDC) and the Donald F. =
Averill=20
Applied Technology Training Center (ATTC). The programs offered by the =
Division=20
are generally off-the-shelf professional development seminars and =
workshops and=20
customized performance improvement training and retraining solutions. By =
using a=20
combination of grant funds and fees for services, this Division delivers =
human=20
capital development programs specially designed to help employers =
improve their=20
employees=E2=80=99 job performance and thereby their overall =
productivity and=20
profitability. By providing training solutions to businesses, the =
District=20
serves as a catalyst for job retention and creation in the region =
leading to=20
economic development.</P>
<P>The Division comprises the following centers and programs: =
Professional=20
Development Center (PDC), Donald F. Averill Applied Technology Training =
Center=20
(ATTC), Center for the Advancement of Nanotechnology (NanoCenter), =
Regional=20
Center of Excellence (COE), Environmental Scanning Services Hub, On-line =

Education Center (Ed2Go), Logistics Technology Program, and the Career =
Technical=20
Education (CTE) Community Collaborative. The PDC provides fee-based =
seminars and=20
workshops, short-term training programs leading to certifications, =
customized=20
contract training programs for employers, and short-term Clean Energy =
training=20
programs. The ATTC and the NanoCenter offer short-term high technology =
training=20
programs, including Nanotechnology Technicians training and Green =
Technology=20
training programs, to meet the growing technology training needs of =
companies in=20
the Inland Empire. The Regional Center of Excellence (COE) provides =
marketing=20
intelligence and technical support for all 11 community colleges in the =
Desert=20
Region. As one of the two hubs in the state, the Environmental Scanning =
Services=20
Hub provides labor market information and environmental scanning reports =
for all=20
41 community colleges in Southern California. The On-line Education =
Center=20
delivers a wide variety of not-for-credit professional and personal =
enrichment=20
classes on-line to learners anywhere.</P>
<P>The Economic Development and Corporate Training division has 15 =
positions,=20
including&nbsp;nine district level management and two part-time =
permanent=20
positions, and over 25 professional trainers. The following =
are&nbsp;EDCT=20
division's organizational structure and number of positions:</P>
<OL>
  <LI>Executive Director, Economic Development and Corporate =
Training</LI>
  <LI>Director, Applied Technologies Training, Applied Technology =
Training=20
  Center (ATTC)</LI>
  <LI>Director, Regional Center of Excellence (COE), Desert =
Region/Region 9</LI>
  <LI>Manager, Workforce Development, Professional Development Center =
(PDC)</LI>
  <LI>Manager, Logistics Technology</LI>
  <LI>Manager, Career Technical Education (CTE) Community =
Collaborative</LI>
  <LI>Manager, Environmental Scanning Services (ESS) Hub</LI>
  <LI>Assistant Director, Applied Technologies Training, ATTC</LI>
  <LI>Assistant Manager, Logistics Technology (Proposed to the =
Board)</LI>
  <LI>Project Analyst</LI>
  <LI>Administrative Secretary</LI>
  <LI>Clerical Assistant II</LI>
  <LI>Clerical Assistant II</LI>
  <LI>Workforce Grant Assistant</LI>
  <LI>Research Assistant (VACANT)</LI></OL>
<P>EDCT=E2=80=99s revenue during the 2009-10 fiscal year was about $11 =
million and=20
served over 9,500 participants at PDC and ATTC facilities and at =
employer sites.=20
The EDCT Division generated $11 million in revenues from competitive =
grants,=20
training (fee-based and customized), and labor market research services =
during=20
fiscal year 2009-10. The competitive grants awarded to EDCT included one =
year or=20
multi-year funding. EDCT expended nearly $3.5 million during the fiscal =
year=20
2009-10 for providing training and retraining services for displaced,=20
unemployed, and incumbent workers. Since some of the grants were awarded =
to=20
provide training services for up to three years, over $7 million of the=20
remaining funds from 2009-10 were carried over to 2010-11.</P>
<P>Of the $3.5 million expended during 2009-10, $1.6 million (46%) were =
spent on=20
salaries and benefits of the staff and the professional experts of the =
EDCT=20
division. EDCT paid $895,946 (26%) in subcontracts to partnering =
community=20
colleges and other vendors to either deliver training services on our =
behalf or=20
for providing supportive services for our operations. EDCT acquired =
$553,999=20
(16%) in high technology equipment for offering state-of-the-art =
hands-on=20
training and another $63,450 (1.8%) was spent to obtain software. EDCT =
spent=20
$119,793 (3.4%) in instructional and non-instructional supplies and paid =
$16,799=20
(0.5%) for maintenance and repairs of equipment and for rentals. =
Further, EDCT=20
spent $39,896 ($1.1%) for conference travel and personal mileage. A =
total of=20
only $5,409 (0.15%) was spent for advertisements as the majority of the =
grants=20
limit paying for marketing and advertisement.</P>
<P>The Economic Development and Corporate Training (EDCT) division is =
99%=20
self-supporting and only 1% of the divisions support came from general =
funds=20
when considering what we returned or contributed to the general funds by =
way of=20
indirect costs&nbsp;during the fiscal year 2009-10. In fact, EDCT has=20
contributed to the District general funds $145,427 as indirect costs =
from grants=20
during the fiscal year&nbsp;2009-10.</P>
<P>EDCT's normal operating hours are 8:00 a.m. to 5:00 p.m. Monday =
through=20
Friday. However, when nanotechnology classes are in session, ATTC is =
opened=20
until 9:00 p.m. Monday through Thursday.&nbsp;The Professional =
Development=20
Center (PDC) is opened on Thursdays until 7:00 p.m. and every other =
Saturday to=20
offer Food Safety training.</P>
<P>&nbsp;</P>
<P><BR>&nbsp;</P></DIV>
<H2>3. Outcomes and Other Measures of Effectiveness</H2>
<DIV>
<OL style=3D"LIST-STYLE-TYPE: lower-alpha" start=3D1>
  <LI>Identify at least one essential measure of effectiveness for each =
major=20
  operation of the unit. (See Effectiveness Measurement Guidelines and=20
  Examples.)</LI>
  <LI>Include at least one baseline measure or measure of progress on a=20
  well-defined outcome.</LI>
  <LI>Include at least one measure showing effectiveness in responding =
to the=20
  Colleges=E2=80=99 needs.</LI>
  <LI>For each measure, identify the assessment method you used.</LI>
  <LI>Please summarize the results of the measures you have applied. If =
results=20
  showing trends over time are available, please report =
them.</LI></OL></DIV>
<DIV class=3Delement-display>
<P><STRONG>Measures of Effectiveness</STRONG></P>
<P>In order to measure the effectiveness of the programs and services =
offered to=20
the displaced and incumbent workers, EDCT designed a Program Review =
survey=20
instrument and administered the survey&nbsp;to a convenient sample of =
displaced=20
and incumbent workers and employers&nbsp;who participated in its =
training and=20
retraining services. The surveys were then compiled and data =
were&nbsp;analyzed=20
using&nbsp; SPSS Analytical Software. Survey questions were designed=20
to&nbsp;ascertain the&nbsp;level of satisfaction for&nbsp;the&nbsp;major =

objectives listed below.&nbsp;</P>
<P><U><STRONG>Objective 1</STRONG></U>: Provide immediate short-term =
training=20
solutions to the regional workforce.</P>
<P><STRONG>Measure</STRONG>: A vast majority or eighty percent (80%) of =
the EDCT=20
customers, including the training participants and =
employers&nbsp;participating=20
in the Program Review survey, will be&nbsp;anticipated =
to&nbsp;agree.</P>
<P><STRONG>Assessment Method</STRONG>: A convenient sample of customers, =

including both training participants and employers, will be surveyed to=20
ascertain whether the short-term training offered by EDCT provided =
immediate=20
short-term training solutions.</P>
<P><STRONG>Results</STRONG>: Eighty-five percent (85%) of the Program =
Review=20
respondents&nbsp;agreed that EDCT provided immediate short-term training =

solutions to the regional workforce.</P>
<P><STRONG><U>Objective 2</U>: </STRONG>Offer high quality customized =
training=20
programs to prepare workers.</P>
<P><STRONG>Measure: </STRONG>A vast majority or 80%&nbsp;of the clients=20
receiving customized training services will agree when surveyed.</P>
<P><STRONG>Assessment Method: </STRONG>A convenient sample =
of&nbsp;participants=20
and employers&nbsp;who received the training services will =
be&nbsp;surveyed=20
through&nbsp;the Program Review instrument.</P>
<P><STRONG>Results</STRONG>: A vast majority of the customers or 93% of =
both the=20
training participants and employers, who contracted services for =
employees=20
(participants/incumbent workers), agreed that the customized training =
programs=20
offered by EDCT for preparing workers were high quality. =
Sixty-nine&nbsp;=20
percent&nbsp;(69%) of the&nbsp;survey participants&nbsp;responded =
"Strongly=20
Agree" and 24% responded "Agree" to the question.</P>
<P><U><STRONG>Objective 3</STRONG></U>: Offer affordable training =
solutions.</P>
<P><STRONG>Measure</STRONG>: A vast majority or 80% of the customers who =

participated in our training services will agree that EDCT offered =
affordable=20
training solutions.</P>
<P><STRONG>Assessment Method</STRONG>: A convenient sample of EDCT =
customers=20
will be surveyed using the Program Review Survey instrument.</P>
<P><STRONG>Results</STRONG>: An overwhelming majority of EDCT customers =
who=20
participated in the survey or 91% of them agreed that the training =
solutions=20
provided by EDCT were affordable.</P>
<P><U><STRONG>Objective 4</STRONG></U>: Provide retraining services to =
regional=20
employers to help them remain competitive.</P>
<P><STRONG>Measure</STRONG>: A vast majority or 80% of the respondents, =
who=20
participated in EDCT's re-training services, will agree that EDCT =
provides=20
re-training services to help the regional employers remain =
competitive.</P>
<P><STRONG>Assessment Method</STRONG>: EDCT customers will be surveyed =
for their=20
response.</P>
<P><STRONG>Results</STRONG>: Eighty-one percent (81%) of the survey =
respondents=20
agreed that the retraining provided by EDCT to workers helped the =
regional=20
employers remain competitive.</P>
<P><U><STRONG>Objective 5</STRONG></U>: Help employers&nbsp;in upgrading =
the=20
skills of their employees (incumbent workers)&nbsp;through offering =
short-term=20
training.</P>
<P><STRONG>Measure</STRONG>: At least 80% of the customers&nbsp;surveyed =
will=20
agree that the short-term training offered by EDCT helped them.</P>
<P><STRONG>Assessment Method</STRONG>:&nbsp;The =
Program&nbsp;Review&nbsp;survey=20
will be&nbsp;distributed to&nbsp;the convenient sample of customers.</P>
<P><STRONG>Results</STRONG>: Eighty-five percent (85%) of the customers =
surveyed=20
by EDCT&nbsp;agreed that short-term training offered by EDCT has helped=20
employers in upgrading the skills of employees. Fifty percent (50%) of=20
the&nbsp;Program Review&nbsp;survey participants&nbsp;responded that =
they=20
"Strongly Agree" and 35% responded that they "Agree."</P>
<P><U><STRONG>Objective =
6</STRONG></U>:&nbsp;Offer&nbsp;job-training&nbsp;that=20
provides&nbsp;skills and competencies for displaced workers&nbsp;to=20
seek&nbsp;for re-employment.&nbsp;</P>
<P><STRONG>Measure</STRONG>:&nbsp;Eighty percent (80%)&nbsp;of the=20
customers&nbsp;responding to the Program Review =
survey&nbsp;will&nbsp;agree that=20
the job-training offered by EDCT provided skills and competencies needed =
for=20
re-employment.</P>
<P><STRONG>Assessment Method</STRONG>:&nbsp;The Program Review survey =
will be=20
distributed to the&nbsp;EDCT customers for their response.</P>
<P><STRONG>Results</STRONG>: Eighty-five percent (85%) of the EDCT =
customers=20
surveyed agreed that the job training offered by EDCT to displaced =
workers=20
provided the workers skills and competencies needed for =
re-employment.</P>
<P><U><STRONG>Objective 7</STRONG></U>: Provide high quality labor =
market=20
reports and market intelligence</P>
<P><STRONG>Measure</STRONG>: Eighty (80%) of the customers responding to =
the=20
Program Review survey questionnaire will agree.</P>
<P><STRONG>Assessment Method</STRONG>: EDCT will survey a convenient =
sample of=20
EDCT customers</P>
<P><STRONG>Results</STRONG>: Seventy-nine percent (79%) of the =
respondents=20
agreed that the labor market reports and market intelligence provided by =
the=20
EDCT Center of Excellence were of high quality.</P>
<P><U><STRONG>Objective 8</STRONG></U>: EDCT staff and project=20
managers&nbsp;will become&nbsp;very helpful to&nbsp;all =
customers.&nbsp;</P>
<P><STRONG>Measure</STRONG>: An overwhelming majority of our customers =
or 90% of=20
the customers will agree that the EDCT staff and project managers are=20
helpful.</P>
<P><STRONG>Assessment Method</STRONG>:&nbsp;The Program Review =
survey&nbsp;will=20
be&nbsp;distributed to a convenient sample of our customers for their=20
response.</P>
<P><STRONG>Results</STRONG>: An overwhelming majority or 95% of the =
customers=20
surveyed responded that the EDCT staff and project managers were=20
helpful.</P></DIV>
<H2>4. External Opportunities and Challenges</H2>
<DIV>
<OL style=3D"LIST-STYLE-TYPE: lower-alpha" start=3D1>
  <LI>Describe any external opportunities that might lead to unit =
improvement=20
  over the next three to five years.</LI>
  <LI>Describe any external challenges (e.g., legal requirements, =
budgetary=20
  constraints) that might limit operations or improvement over the next =
three to=20
  five years.</LI></OL></DIV>
<DIV class=3Delement-display>
<P><STRONG>&nbsp;a. Describe any external opportunities that might lead =
to unit=20
improvement over the next three to five years</STRONG></P>
<P>A recent survey of SBCCD employees&nbsp;conducted by the District =
Strategic=20
Planning Committee on Marketing and Outreach revealed the following =
perceptions=20
regarding EDCT:</P>
<UL>
  <LI>Respondents did not understand the role of EDCT and =
the&nbsp;breadth of=20
  offerings of EDCT.</LI>
  <LI>Were neutral about the value of EDCT</LI>
  <LI>District employees did not feel that the community understand the =
breadth=20
  of the offerings of EDCT</LI>
  <LI>Respondents did not feel that the District or the Community at =
large=20
  understood the distinctions between the college's academic offerings =
and those=20
  courses/programs offered by the EDCT.</LI></UL>
<P>These findings reveal that there is a lack of understanding among the =

District community about&nbsp;EDCT's role, breadth of offerings, and =
value to=20
the community as perceived by&nbsp;some respondents. Therefore,=20
there&nbsp;exists an immediate&nbsp;opportunity to build awareness about =
the=20
mission, role, value&nbsp;and offerings of EDCT to the internal and =
external=20
communities. Our immediate goal is to build awareness through various =
mediums=20
such as Newsletters, presentations about EDCT at College events, and =
improving=20
our&nbsp;efforts in building awareness of internal and external =
customers.</P>
<P>b. <STRONG>Describe any external challenges (e.g., legal =
requirements,=20
budgetary constraints) that might limit operations or improvement over =
the next=20
three to five years. </STRONG></P>
<P>Ever since the state started imposing budget cuts to the California =
Community=20
Colleges, one of the areas they invariably cut was categorical programs =
like the=20
Economic and Workforce Development funds that partially support our EDCT =

programs and services. Nearly 60% of the support for Economic and =
Workforce=20
Development (EWD)&nbsp;has been reduced. In fact, over the years, the =
System=20
Chancellor's Office used the EWD resources to offer various short-term =
grants to=20
provide training for displaced and incumbent workers in California. And, =

those&nbsp;grant resources that come through the System Chancellor's=20
Office&nbsp;offered us the ability to build our capacity and provide the =
needed=20
training for the workforce. Unfortunately, such opportunities have been=20
drastically reduced to now&nbsp;a handful of grants that are inadequate =
to meet=20
the growing training needs of the displaced workers.&nbsp;This=20
state-wide&nbsp;cut of the EWD resources&nbsp;will limit our=20
opportunity&nbsp;for state dollars. However, EDCT has=20
effectively&nbsp;positioned itself to&nbsp;compete for federal grants =
and has=20
been very successful in winning competitive grants from the federal =
agencies. We=20
will continue to compete for these=20
federal&nbsp;grants.&nbsp;<BR>&nbsp;</P></DIV>
<H2>5. Analysis and Evaluation</H2>
<DIV>
<OL style=3D"LIST-STYLE-TYPE: lower-alpha" start=3D1>
  <LI>Analyze the implications of the assessment results and external =
factors=20
  for your unit.</LI>
  <LI>In light of your analysis, what are your unit=E2=80=99s main =
strengths?</LI>
  <LI>In light of your analysis, what are your unit=E2=80=99s main=20
weaknesses?</LI></OL></DIV>
<DIV class=3Delement-display>
<P><STRONG>a. Analyze the implications of the assessment results and =
external=20
factors for your unit</STRONG></P>
<P>The&nbsp;findings of the Program Review survey that=20
EDCT&nbsp;administered&nbsp;to&nbsp;a convenient sample=20
of&nbsp;its&nbsp;training participants and employers brought to light an =

overwhelming agreement of&nbsp;our customers about=20
the&nbsp;"<STRONG>effectiveness" </STRONG>of&nbsp;EDCT's offerings in =
serving=20
the training and retraining needs of the workforce. This high degree=20
of&nbsp;effectiveness or success&nbsp;of our training programs was=20
evident&nbsp;from the overwhelming majority of respondents agreeing to =
the=20
following statements:</P>
<UL>
  <LI>85% of the respondents agreed that EDCT provides immediate =
short-term=20
  training solutions to the regional workforce</LI>
  <LI>93% of the respondents agreed that the customized training =
programs=20
  offered by EDCT for preparing workers were of high quality</LI>
  <LI>91% of the respondents agreed that the training solutions provided =
by EDCT=20
  were affordable</LI>
  <LI>81% of the respondents agreed that the re-training provided by =
EDCT to=20
  workers helped the regional employers remain competitive</LI>
  <LI>85% of the respondents agreed that the short-term training offered =
by EDCT=20
  has helped employers in upgrading the skills of employees</LI>
  <LI>85% of the respondents agreed that the job-training offered by =
EDCT to=20
  displaced workers provided them with skills and competencies needed =
for=20
  re-employment</LI>
  <LI>79% of the respondents agreed that the labor market reports and =
market=20
  intelligence provided by the EDCT's Center of Excellence were of high=20
  quality.</LI>
  <LI>95% of the respondents agreed that the EDCT staff and project =
managers=20
  were helpful</LI></UL>
<P><STRONG>b. In light of your analysis, what are your unit=E2=80=99s =
main strengths?=20
</STRONG></P>
<UL>
  <LI>EDCT's ability to customize/develop and deliver affordable and =
high=20
  quality&nbsp;training</LI>
  <LI>A highly qualified staff who can ascertain the training needs of =
the=20
  regional workforce&nbsp;and develop meaningful training to improve the =
human=20
  capitial development needs of this region's employers.&nbsp;</LI>
  <LI>A highly experienced staff who can compete and win competitive =
grants at=20
  the national level and bring resources to our region for =
its&nbsp;economic=20
  development</LI>
  <LI>EDCT's unique role and position that enables SBCCD to serve the =
short-term=20
  job-training needs of&nbsp;about 75%&nbsp;of&nbsp;the adult population =
in this=20
  region that do not have a college degree or =
have&nbsp;generally&nbsp;any plans=20
  to attend college</LI>
  <LI>EDCT's ability to provide immediate training resources to our =
workforce=20
  and impact economic development</LI>
  <LI>EDCT's&nbsp;unique capability&nbsp;to provide training in emerging =

  technologies and serve as an incubator for SBCCD colleges for such =
emerging=20
  fields before a formal educational program is developed.</LI>
  <LI>EDCT's economic impact&nbsp;in job creation and retention&nbsp;of =
this=20
  region through providing job-training</LI>
  <LI>EDCT's infrastructure to provide up-to-date labor market =
intelligence for=20
  California Community Colleges.</LI></UL>
<P><STRONG>c. In light of your analysis, what are your unit=E2=80=99s =
main=20
weaknesses?</STRONG></P>
<P>There appears to be a disconnect between&nbsp;the =
enormous&nbsp;impact EDCT=20
has on the economic&nbsp;prosperity of this community&nbsp;as clearly =
perceived=20
by our customers&nbsp;and how the District employees perceived EDCT as=20
evident&nbsp;from the&nbsp;DSP&nbsp;Marketing survey. In fact, we do not =

directly&nbsp;serve the colleges or employees of&nbsp;SBCCD. Since our=20
services&nbsp;are&nbsp;delivered directly to the workforce and =
employers, it is=20
understandable that the District&nbsp;employees lack=20
awareness&nbsp;about&nbsp;EDCT's role and value. However,&nbsp;our goal =
is to=20
reverse this lack of understanding.&nbsp;<BR>&nbsp;</P></DIV>
<H2>6. Three-to-Five Year Vision</H2>
<DIV>
<OL style=3D"LIST-STYLE-TYPE: lower-alpha" start=3D1>
  <LI>Describe your unit as you would like it to be three to five years =
from=20
  now.</LI></OL></DIV>
<DIV class=3Delement-display>
<P>As a leading provider of economic and workforce development services =
among=20
California Community Colleges, EDCT would like to be a leader in the=20
following:</P>
<OL>
  <LI>Health Information Technology (HIT)/Electronics Health Records =
training=20
  for the healthcare industry in California. A $5 million grant=20
  proposal&nbsp;was submitted by Dr. Matthew Isaac to the US Department =
of Labor=20
  last month to develop a pilot HIT training program for this region and =
for=20
  Catholic Healthcare West (CHW) comprising of 40 hospitals in =
California,=20
  Arizona and Nevada.</LI>
  <LI>Expanding the scope of Nanotechnology training to include =
Nanomedicine,=20
  Nanoenergy and Nanomaterials and continue to be a leader in the nation =
in=20
  providing cutting edge Nanotechnology training for technicians.</LI>
  <LI>Establish a 501(c) (3) National Nanotechnology Collaborative that=20
  establishes for the first time in the nation a national skills =
standards for=20
  nanotechnology technicians. This national level&nbsp;Collaborative =
will be an=20
  extension of SBCCD.</LI>
  <LI>Expand SBCCD EDCT's role in Logistics Technology in assisting =
logistics=20
  industrial cluster in Southern California's&nbsp;Transportation =
Corridor.</LI>
  <LI>Major provider of a wide variety of training in Green Technologies =

  and&nbsp;Clean&nbsp;Energy Technology occupational&nbsp;areas.</LI>
  <LI>Continue to be self-supporting division and a contributor to =
SBCCD's=20
  general funds through indirect costs from grants</LI></OL></DIV>
<H2>7. Impact on the Colleges and the District</H2>
<DIV>
<OL style=3D"LIST-STYLE-TYPE: lower-alpha" start=3D1>
  <LI>Describe the most significant relationships with other District =
operations=20
  and College operations.=20
  <OL style=3D"LIST-STYLE-TYPE: lower-roman" start=3D1>
    <LI>What major impact does your unit have on them?</LI>
    <LI>.What major impact do they have on your unit?</LI></OL></LI>
  <LI>How do your mission, vision, and goals contribute to the Board =
Imperatives=20
  and the District and/or College mission, vision, strategic directions, =
and/or=20
  goals?</LI></OL></DIV>
<DIV class=3Delement-display>
<P><STRONG>a. Describe the most significant relationships with other =
District=20
operations and College operations</STRONG></P>
<P>The economic and workforce development mission performed by the =
Economic=20
Development and Corporate Training (EDCT) division&nbsp;is a centralized =

function at&nbsp;SBCCD. EDCT offers customized Contract Education, =
grant-funded=20
training programs in emerging technologies, and&nbsp;short-term =
job-training for=20
incumbent, displaced or unemployed, and underemployed workers on behalf =
of both=20
colleges of the District. Further, EDCT serves as the training arm of =
the=20
District in providing not-for-credit training services on behalf of the=20
District. EDCT coordinates these services in collaboration with the =
District=20
colleges when necessary. EDCT serves as an incubator for offering =
training=20
in&nbsp;emerging technologies or for&nbsp;high growth or high=20
demand&nbsp;occupations,&nbsp;which will eventually help the colleges=20
in&nbsp;developing&nbsp;a certificate or&nbsp;associate =
degree&nbsp;program.=20
Moreover, our short-term training programs can attract adults from the =
community=20
at large who may not otherwise enroll in a college level program and =
thus become=20
familiar with SBCCD and its programs. So, EDCT is a gateway to =
displaced,=20
unemployed, underemployed and incumbent workers in our community. These =
training=20
participants can become potential students in the academic programs of =
both=20
colleges. And, this is the major impact EDCT has on the colleges.</P>
<P>EDCT's&nbsp;mission, vision and goals are consistent with the overall =
mission=20
of&nbsp;SBCCD and its Board Imperatives. EDCT's mission to stimulate the =

economic prosperity of the Inland Empire through workforce =
development&nbsp;is=20
aligned with mainly the following Board imperatives:&nbsp;1) =
institutional=20
effectiveness and &nbsp;2) learning centered institution for student =
access,=20
retention and success.</P></DIV>
<H2>8. Other Pertinent Information</H2>
<DIV>
<OL style=3D"LIST-STYLE-TYPE: lower-alpha" start=3D1>
  <LI>Include here any other information you regard as necessary for a =
full=20
  understanding of your unit.</LI></OL></DIV>
<DIV class=3Delement-display>
<P>The Economic Development and Corporate Training (EDCT) division =
offers only=20
not-for-credit training and re-training programs for the purpose of =
providing=20
short-term job-training for the workforce. We do not duplicate or =
conflict with=20
the academic offerings of the colleges.&nbsp; We target and&nbsp;serve a =
segment=20
of the population that is generally not served by the =
SBCCD&nbsp;colleges:=20
unemployed and incumbent workers.&nbsp;We target&nbsp;75% of the adult=20
population that does not have any college&nbsp;and needing to upgrade =
their=20
skills. We also serve&nbsp;the human capital development needs of=20
the&nbsp;incumbent workers.</P>
<P>Our training programs target&nbsp;three types of workers: displaced =
or=20
unemployed, underemployed and incumbent workers. Our training programs =
are=20
funded&nbsp;by grants or&nbsp;restricted funds from state and/or federal =

agencies. The grantors&nbsp;have their own terms and conditions and =
reporting=20
and audit requirements. We provide quarterly and annual financial and =
narrative=20
reports to the state and federal agencies for compliance. Moreover, the =
federal=20
government agencies that provide grants for EDCT perform =
on-site&nbsp;audit of=20
our programs at any time as&nbsp;they deemed necessary.</P>
<P>As a self-supporting arm of the District, EDCT itself creates =
full-time,=20
part-time and professional expert jobs in our community. We have created =
13=20
full-time jobs including 9 district-level management positions, two =
part-time=20
permanent jobs, two full-time consulting positions,&nbsp;and =
over&nbsp;25=20
professional expert positions&nbsp;at any given time. Over the last 10 =
years we=20
brought over $20 million to this region in federal and state grants that =
gave=20
this region a Return on Investment (ROI) of $60 million at the=20
minimum.</P></DIV>
<H2>9. Goals, Objectives, Action Plans, and Resource Requests</H2>
<DIV>
<OL style=3D"LIST-STYLE-TYPE: lower-alpha" start=3D1>
  <LI>Goals (with priority rank) over the next three years</LI>
  <LI>Objectives (with priority rank) under each Goal</LI>
  <LI>Principal Activities under each Objective, if available</LI>
  <LI>Timeline for completion of each Activity or Objective</LI>
  <LI>Person responsible for ensuring completion of each Activity or=20
  Objective</LI>
  <LI>Progress on or achievement of a given Goal or Objective does not=20
  necessarily require additional resources. For Goals and Objectives =
that do=20
  require resources, enter the following information:=20
  <OL style=3D"LIST-STYLE-TYPE: lower-roman" start=3D1>
    <LI>Resources required to achieve Goals and Objectives over the next =
three=20
    years, with description and rationale for each</LI>
    <LI>Identification of associated Goals or Objectives</LI>
    <LI>Type of Resource=20
    <OL style=3D"LIST-STYLE-TYPE: lower-roman" start=3D1>
      <LI>Expenditure Category</LI>
      <LI>One-time/Ongoing</LI></OL></LI>
    <LI>Estimated annual cost (or savings) for the next three=20
years</LI></OL></LI></OL></DIV>
<DIV class=3Delement-display>
<UL>
  <LI>
  <DIV><STRONG>1 - Goal - Build awareness about EDCT's mission and =
program=20
  offerings among the District employees</STRONG></DIV>
  <DIV>
  <P>The findings of a survey conducted by the District Strategic =
Planning=20
  Committee on Marketing and Outreach indicated that some of the =
respondents did=20
  not understand the role, value, and the breadth of offerings of EDCT.=20
  Therefore, the District community must be made aware of the mission, =
value,=20
  and breadth of offerings of EDCT</P></DIV>
  <DIV class=3Ddisplay-row>
  <DIV class=3Ddisplay-label>Priority Rank:</DIV>
  <DIV class=3Ddisplay-field>2</DIV></DIV>
  <DIV><STRONG>Objectives:</STRONG></DIV>
  <UL>
    <LI>
    <DIV><STRONG>1.1 - Objective - Enhance District-wide dissemination =
of=20
    information regarding EDCT's mission, value and training=20
    programs</STRONG></DIV>
    <DIV class=3Ddisplay-row>
    <P>Publish a quarterly Newsletter to communicate information =
pertaining to=20
    EDCT; offer awareness building events and activities to make SBCCD's =

    internal community aware of EDCT's mission, vision, and breadth of=20
    offerings.</P></DIV>
    <DIV class=3Ddisplay-row>
    <DIV class=3Ddisplay-label>Priority Rank:</DIV>
    <DIV class=3Ddisplay-field>2</DIV></DIV>
    <DIV class=3Ddisplay-row>
    <DIV class=3Ddisplay-label>Start Date:</DIV>
    <DIV class=3Ddisplay-field>07/01/2011</DIV>
    <DIV class=3Ddisplay-label>End Date:</DIV>
    <DIV class=3Ddisplay-field>06/30/2012</DIV></DIV>
    <DIV class=3Ddisplay-row>
    <DIV class=3Ddisplay-label>Responsible Person:</DIV>
    <DIV class=3Ddisplay-field>Executive Director of Economic =
Development and=20
    Corporate Training Division</DIV></DIV>
    <DIV class=3Ddisplay-row><STRONG>Resource Requests:</STRONG></DIV>
    <UL>
      <LI>
      <DIV><STRONG>1.1.r1 - Printing and mailing</STRONG></DIV>
      <DIV><STRONG>Description</STRONG></DIV>
      <DIV>
      <P>A quarterly Newsletter needs to be =
published<BR>&nbsp;</P></DIV>
      <DIV><STRONG>Rationale</STRONG></DIV>
      <DIV>
      <P>In order to change the lack of awareness of District employees =
about=20
      EDCT mission, value and breadth of offerings as identified by the =
DSP=20
      Marketing and Outreach survey,&nbsp;EDCT needs to have=20
      a&nbsp;quarterly&nbsp;informational Newsletter published both=20
      electronically and hard copy for both internal and external=20
      customers.</P></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>Resource Type:</DIV>
      <DIV class=3Ddisplay-field>Ongoing</DIV>
      <DIV class=3Ddisplay-row></DIV>
      <DIV class=3Ddisplay-label>Expenditure Category:</DIV>
      <DIV class=3Ddisplay-field>Services</DIV></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>First Year Cost/Savings:</DIV>
      <DIV class=3Ddisplay-field>$2,000.00/$0.00 </DIV></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>Second Year Cost/Savings:</DIV>
      <DIV class=3Ddisplay-field>$2,000.00/$0.00 </DIV></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>Third Year Cost/Savings:</DIV>
      <DIV class=3Ddisplay-field>$2,000.00/$0.00 =
</DIV></DIV></LI></UL></LI></UL></LI>
  <LI>
  <DIV><STRONG>2 - Goal - Maximize the marketing and outreach efforts to =
build=20
  awareness in the external community</STRONG></DIV>
  <DIV>
  <P>Publish a quarterly Newsletter to communicate information =
pertaining to=20
  EDCT to&nbsp;the external community; offer awareness building events =
and=20
  activities to make SBCCD's&nbsp;external community aware of EDCT's =
mission,=20
  vision, and breadth of offerings.<BR>&nbsp;</P></DIV>
  <DIV class=3Ddisplay-row>
  <DIV class=3Ddisplay-label>Priority Rank:</DIV>
  <DIV class=3Ddisplay-field>2</DIV></DIV>
  <DIV><STRONG>Objectives:</STRONG></DIV>
  <UL>
    <LI>
    <DIV><STRONG>2.1 - Objective - Market customized training and =
professional=20
    development programs to the community through various outreach =
efforts,=20
    community events, presentations at events and to the=20
    businesses</STRONG></DIV>
    <DIV class=3Ddisplay-row>
    <P>Host public events and attract businesses and general public to =
the PDC=20
    and ATTC; participate in community and regional events; make =
presentations=20
    at public events and conferences locally, regionally and statewide;=20
    advertise programs through the media; increase media coverage =
through=20
    newspaper, radio, television, and press releases for all programs; =
send bulk=20
    mailing for target populations.</P></DIV>
    <DIV class=3Ddisplay-row>
    <DIV class=3Ddisplay-label>Priority Rank:</DIV>
    <DIV class=3Ddisplay-field>2</DIV></DIV>
    <DIV class=3Ddisplay-row>
    <DIV class=3Ddisplay-label>Start Date:</DIV>
    <DIV class=3Ddisplay-field>07/01/2011</DIV>
    <DIV class=3Ddisplay-label>End Date:</DIV>
    <DIV class=3Ddisplay-field>06/30/2012</DIV></DIV>
    <DIV class=3Ddisplay-row>
    <DIV class=3Ddisplay-label>Responsible Person:</DIV>
    <DIV class=3Ddisplay-field>Executive Director, Director and =
Assistant Director=20
    of Applied Technologies Training, Workforce Development Manager, and =
Manager=20
    of Logistics Technology</DIV></DIV>
    <DIV class=3Ddisplay-row><STRONG>Resource Requests:</STRONG></DIV>
    <UL>
      <LI>
      <DIV><STRONG>2.1.r1 - Marketing and outreach</STRONG></DIV>
      <DIV><STRONG>Description</STRONG></DIV>
      <DIV>
      <P>As a slef-supporting entity, we do not receive any funds from =
the=20
      District to do marketing and outreach to the region. EDCT needs =
some seed=20
      money to aggressively promote our services.<BR>&nbsp;</P></DIV>
      <DIV><STRONG>Rationale</STRONG></DIV>
      <DIV>
      <P>EDCT has to build awareness about its programs and services in =
the=20
      community through aggressive marketing and outreach.</P></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>Resource Type:</DIV>
      <DIV class=3Ddisplay-field>One-time</DIV>
      <DIV class=3Ddisplay-row></DIV>
      <DIV class=3Ddisplay-label>Expenditure Category:</DIV>
      <DIV class=3Ddisplay-field>Services</DIV></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>First Year Cost/Savings:</DIV>
      <DIV class=3Ddisplay-field>$10,000.00/$0.00 </DIV></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>Second Year Cost/Savings:</DIV>
      <DIV class=3Ddisplay-field>$0.00/$10,000.00 </DIV></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>Third Year Cost/Savings:</DIV>
      <DIV class=3Ddisplay-field>$0.00/$10,000.00=20
</DIV></DIV></LI></UL></LI></UL></LI>
  <LI>
  <DIV><STRONG>3 - Goal - Continue efforts to build partnership and =
leverage=20
  funding to sustain and widen the focus and scope of EDCT=E2=80=99s =
Green Technology=20
  job training programs </STRONG></DIV>
  <DIV></DIV>
  <DIV class=3Ddisplay-row>
  <DIV class=3Ddisplay-label>Priority Rank:</DIV>
  <DIV class=3Ddisplay-field>1</DIV></DIV>
  <DIV><STRONG>Objectives:</STRONG></DIV>
  <UL>
    <LI>
    <DIV><STRONG>3.1 - Objective - Obtain grants, sub-grants and =
contracts for=20
    offering green technology workforce training fitting to the regional =

    industrial trends</STRONG></DIV>
    <DIV class=3Ddisplay-row>
    <P>Foster partnerships from the community for seeking green =
technology=20
    grants; in partnership with the industry, develop training programs =
fitting=20
    to the regional industrial trends; apply for grants and contracts; =
in=20
    partnership with the County, recruit displaced workers; offer green=20
    technology training to the workforce</P></DIV>
    <DIV class=3Ddisplay-row>
    <DIV class=3Ddisplay-label>Priority Rank:</DIV>
    <DIV class=3Ddisplay-field>1</DIV></DIV>
    <DIV class=3Ddisplay-row>
    <DIV class=3Ddisplay-label>Start Date:</DIV>
    <DIV class=3Ddisplay-field>07/01/2011</DIV>
    <DIV class=3Ddisplay-label>End Date:</DIV>
    <DIV class=3Ddisplay-field>06/30/2012</DIV></DIV>
    <DIV class=3Ddisplay-row>
    <DIV class=3Ddisplay-label>Responsible Person:</DIV>
    <DIV class=3Ddisplay-field>Workforce Development Manager, Director =
of ATT,=20
    Director of Center of Excellence and Manager of Logistics=20
    Technology</DIV></DIV>
    <DIV class=3Ddisplay-row><STRONG>Resource Requests:</STRONG></DIV>
    <UL>
      <LI>
      <DIV><STRONG>3.1.r1 - Hire a full-time Manager for Grant =
Management and=20
      Development</STRONG></DIV>
      <DIV><STRONG>Description</STRONG></DIV>
      <DIV>
      <P>The Program Review Survey conducted by EDCT of its customers =
included=20
      three open-ended questions. For the question "What new/emerging=20
      technologies or high growth areas should EDCT offer training in," =
majority=20
      of them wrote in either "Solar Training" or other types of "Green=20
      Technologies" and or "Nanotechnology" training as needed. =
Therefore, as=20
      the respondents identified and consistent with the market trends, =
there is=20
      going to be a growing need for providing short-term job training =
in=20
      emerging technologies like Green Technologies and=20
Nanotechnology.</P></DIV>
      <DIV><STRONG>Rationale</STRONG></DIV>
      <DIV>
      <P>EDCT needs to hire a full-time&nbsp;Grant Manager to seek and =
win=20
      grants offered for&nbsp;short-term job-training, =
especially&nbsp;in=20
      emerging technologies such as Green Technologies&nbsp;and=20
      Nanotechnology.</P>
      <P>EDCT need only funding for this position the first year. By the =
second=20
      year, the position can be fully-supported&nbsp;with the indirect =
costs the=20
      grantors allow the District to keep from the grants. EDCT =
anticipate fully=20
      supporting this position from the proceeds of the =
grants.</P></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>Resource Type:</DIV>
      <DIV class=3Ddisplay-field>One-time</DIV>
      <DIV class=3Ddisplay-row></DIV>
      <DIV class=3Ddisplay-label>Expenditure Category:</DIV>
      <DIV class=3Ddisplay-field>Personnel</DIV></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>First Year Cost/Savings:</DIV>
      <DIV class=3Ddisplay-field>$99,000.00/$0.00 </DIV></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>Second Year Cost/Savings:</DIV>
      <DIV class=3Ddisplay-field>$0.00/$99,000.00 </DIV></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>Third Year Cost/Savings:</DIV>
      <DIV class=3Ddisplay-field>$0.00/$99,000.00=20
</DIV></DIV></LI></UL></LI></UL></LI>
  <LI>
  <DIV><STRONG>4 - Goal - Seek out economic and workforce development =
grants in=20
  emerging technologies and high growth occupational areas to provide =
short-term=20
  job training for the workforce</STRONG></DIV>
  <DIV></DIV>
  <DIV class=3Ddisplay-row>
  <DIV class=3Ddisplay-label>Priority Rank:</DIV>
  <DIV class=3Ddisplay-field>1</DIV></DIV>
  <DIV><STRONG>Objectives:</STRONG></DIV>
  <UL>
    <LI>
    <DIV><STRONG>4.1 - Objective - Search and evaluate economic and =
workforce=20
    development grant opportunities in emerging technologies and apply =
for=20
    grants to provide short-term training for incumbent workers and =
displaced=20
    workers</STRONG></DIV>
    <DIV class=3Ddisplay-row>
    <P>Review terms and conditions&nbsp;of grants in new and emerging=20
    technologies; seek out potential educational and business partners =
who can=20
    leverage financial and intellectual resources for the project; =
negotiate=20
    with prospective partners; develop Memorandums of Understanding; =
identify=20
    individuals who have the educational background and industrial =
experience in=20
    assisting us with the development of training content; develop =
training=20
    programs to be included in the grant application; develop grant =
proposals=20
    and apply for grants</P></DIV>
    <DIV class=3Ddisplay-row>
    <DIV class=3Ddisplay-label>Priority Rank:</DIV>
    <DIV class=3Ddisplay-field>1</DIV></DIV>
    <DIV class=3Ddisplay-row>
    <DIV class=3Ddisplay-label>Start Date:</DIV>
    <DIV class=3Ddisplay-field>07/01/2011</DIV>
    <DIV class=3Ddisplay-label>End Date:</DIV>
    <DIV class=3Ddisplay-field>06/30/2012</DIV></DIV>
    <DIV class=3Ddisplay-row>
    <DIV class=3Ddisplay-label>Responsible Person:</DIV>
    <DIV class=3Ddisplay-field>Executive Director, Workforce Development =
Manager,=20
    Director of ATT, Logistics Technology Manager, Director of COE and =
Manager=20
    of CTE Community Collaborative</DIV></DIV>
    <DIV class=3Ddisplay-row><STRONG>Resource Requests:</STRONG></DIV>
    <UL>
      <LI>
      <DIV><STRONG>4.1.r1 - Hire a Manager for Grants Management and=20
      Development</STRONG></DIV>
      <DIV><STRONG>Description</STRONG></DIV>
      <DIV>
      <P>Please see Goal No.&nbsp;3&nbsp;and Objective&nbsp;No. =
3.</P></DIV>
      <DIV><STRONG>Rationale</STRONG></DIV>
      <DIV>
      <P>Please see Goal No. 3 and Objective&nbsp;No. 3.</P></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>Resource Type:</DIV>
      <DIV class=3Ddisplay-field>One-time</DIV>
      <DIV class=3Ddisplay-row></DIV>
      <DIV class=3Ddisplay-label>Expenditure Category:</DIV>
      <DIV class=3Ddisplay-field>Personnel</DIV></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>First Year Cost/Savings:</DIV>
      <DIV class=3Ddisplay-field>$0.00/$0.00 </DIV></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>Second Year Cost/Savings:</DIV>
      <DIV class=3Ddisplay-field>$0.00/$0.00 </DIV></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>Third Year Cost/Savings:</DIV>
      <DIV class=3Ddisplay-field>$0.00/$0.00 =
</DIV></DIV></LI></UL></LI></UL></LI>
  <LI>
  <DIV><STRONG>5 - Goal - Optimize the entrepreneurial and innovative=20
  organizational capability of EDCT and maintain its self-supporting=20
  status.</STRONG></DIV>
  <DIV></DIV>
  <DIV class=3Ddisplay-row>
  <DIV class=3Ddisplay-label>Priority Rank:</DIV>
  <DIV class=3Ddisplay-field>1</DIV></DIV>
  <DIV><STRONG>Objectives:</STRONG></DIV>
  <UL>
    <LI>
    <DIV><STRONG>5.1 - Objective - Generate income through contracts, =
grants and=20
    sub-grantee contracts to support all the operational costs and staff =

    salaries and benefits of EDCT</STRONG></DIV>
    <DIV class=3Ddisplay-row>
    <P>Outreach and receive contracts for customized training; manage =
existing=20
    contracts efficiently; manage existing grants efficiently and =
leverage=20
    resources; obtain new grant to meet the direct and indirect costs of =
new=20
    programs</P></DIV>
    <DIV class=3Ddisplay-row>
    <DIV class=3Ddisplay-label>Priority Rank:</DIV>
    <DIV class=3Ddisplay-field>1</DIV></DIV>
    <DIV class=3Ddisplay-row>
    <DIV class=3Ddisplay-label>Start Date:</DIV>
    <DIV class=3Ddisplay-field>07/01/2011</DIV>
    <DIV class=3Ddisplay-label>End Date:</DIV>
    <DIV class=3Ddisplay-field>06/30/2012</DIV></DIV>
    <DIV class=3Ddisplay-row>
    <DIV class=3Ddisplay-label>Responsible Person:</DIV>
    <DIV class=3Ddisplay-field>Executive Director and Staff of PDC, ATTC =
and=20
    COE</DIV></DIV>
    <DIV class=3Ddisplay-row><STRONG>Resource Requests:</STRONG></DIV>
    <UL>
      <LI>
      <DIV><STRONG>5.1.r1 - Hire a Manager for Grant Management and=20
      Development</STRONG></DIV>
      <DIV><STRONG>Description</STRONG></DIV>
      <DIV>
      <P>Please see Goal No. 3 and Objective&nbsp;No. =
3<BR>&nbsp;</P></DIV>
      <DIV><STRONG>Rationale</STRONG></DIV>
      <DIV>
      <P>Please see Goal No. 3&nbsp;and Objective&nbsp;No. 3</P></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>Resource Type:</DIV>
      <DIV class=3Ddisplay-field>One-time</DIV>
      <DIV class=3Ddisplay-row></DIV>
      <DIV class=3Ddisplay-label>Expenditure Category:</DIV>
      <DIV class=3Ddisplay-field>Personnel</DIV></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>First Year Cost/Savings:</DIV>
      <DIV class=3Ddisplay-field>$0.00/$0.00 </DIV></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>Second Year Cost/Savings:</DIV>
      <DIV class=3Ddisplay-field>$0.00/$0.00 </DIV></DIV>
      <DIV class=3Ddisplay-row>
      <DIV class=3Ddisplay-label>Third Year Cost/Savings:</DIV>
      <DIV class=3Ddisplay-field>$0.00/$0.00=20
</DIV></DIV></LI></UL></LI></UL></LI></UL></DIV>
<H2>10. Progress Report on Last Cycle's Goals, Objectives, and =
Actions</H2>
<DIV>
<OL style=3D"LIST-STYLE-TYPE: lower-alpha" start=3D1>
  <LI>Estimate progress to date on each of the last cycle=E2=80=99s =
Goals, Objectives,=20
  and Activities.</LI>
  <LI>Any uncompleted Goals, Objectives, and Activities that are still =
important=20
  should appear in the Goals, Objectives, and Action Plans section=20
above.</LI></OL></DIV>
<DIV class=3Delement-display>
<P>Not Applicable. This is the first time EDCT is&nbsp;required to=20
do&nbsp;Program Review. As our programs are funded by restricted funds =
from=20
state and federal government agencies, we are required to provide =
on-going=20
quarterly&nbsp;and annual financial and narrative reports for compliance =
and=20
review&nbsp;to the grantors&nbsp;who fund our =
training&nbsp;programs.&nbsp;In=20
fact,&nbsp;our categorically funded&nbsp;programs are reviewed on an =
on-going=20
basis by our grantors and occasionally by&nbsp;federal government =
who&nbsp;make=20
site visits to audit our programs.</P></DIV>
<H2>11. Process and Participants</H2>
<DIV>
<OL style=3D"LIST-STYLE-TYPE: lower-alpha" start=3D1>
  <LI>Describe briefly the main steps of the process that produced this=20
  report.</LI>
  <LI>List the name and function of each participant in that =
process.</LI>
  <LI>Include as many members of the unit as possible in the preparation =
and/or=20
  review of this document. It should not be the product of the manager =
alone or=20
  of a small proportion of unit members.</LI>
  <LI>Describe the plan for future assessment cycles, particularly if =
not all=20
  measures were applied in current cycle.</LI></OL></DIV>
<DIV class=3Delement-display>
<P><STRONG>a. Describe briefly the main steps of the process that =
produced this=20
report </STRONG></P>
<UL>
  <LI>A Program Survey Instrument was developed, revised and =
adopted</LI>
  <LI>A&nbsp;survey was administered to&nbsp;a convenient sample=20
  of&nbsp;training participants and employer partners by the Program=20
  Managers&nbsp;</LI>
  <LI>Data compiled from the survey was analyzed using SPSS Analytical=20
  Software</LI>
  <LI>Data, valid percentages, and the charts for each =
question&nbsp;were=20
  created,&nbsp;reviewed and analyzed</LI>
  <LI>The final Program Review report was&nbsp;prepared and =
revised</LI></UL>
<P><STRONG>b. List the name and function of each participant in that=20
process</STRONG></P>
<P>Dr. Matthew Isaac, Executive Director&nbsp;- Development of the =
Program=20
Review Survey Instrument, analysis of the data, and writing the Program =
Review=20
Plan and report.</P>
<P>Dr. Jamail Carter, Assistant Director -&nbsp;Assisted in the =
development and=20
revision of the Survey Instrument</P>
<P>Evgeniya Lindstrom, Director of Center of Excellence&nbsp;<STRONG>-=20
</STRONG>Assisted in the development and revision of the Survey =
Instrument</P>
<P>Robert Levesque, Workforce Development Manager - Administration of =
the=20
Survey</P>
<P>Albert Maniaol, Director of Applied Technologies Training - =
Administration of=20
the Survey</P>
<P>Alan Braggins, Logistics Technology Manager - Administration of =
Survey</P>
<P>Dr. Jamail Carter, Assistant Director&nbsp;- Analyzed the Data using =
SPSS=20
Analytical Software</P>
<P>Lori Sanchez, Manager of Environmental Scanning/Labor Market =
Researcher -=20
Formatting and Revision of Charts</P></DIV>
<H2>12. Supporting Documents</H2>
<DIV></DIV>
<DIV class=3Delement-display>
<UL>
  <LI><A=20
  =
href=3D"https://www.craftonhills.edu/ProgramReview/Plan.aspx/GetSupportin=
gDocument/fe60f6de-f21a-4b64-b64f-01ce0f91ca33/Program%20Review%20Data%20=
Analysis%20and%20Charts.xls"=20
  target=3D_blank>Program Review Data Analysis and Charts.xls</A> </LI>
  <LI><A=20
  =
href=3D"https://www.craftonhills.edu/ProgramReview/Plan.aspx/GetSupportin=
gDocument/0f92607c-5462-44fd-8640-47b9be9cfe65/Organizational%20Chart%20-=
%20EDCT%20March%202011.docx"=20
  target=3D_blank>Organizational Chart - EDCT March 2011.docx</A> </LI>
  <LI><A=20
  =
href=3D"https://www.craftonhills.edu/ProgramReview/Plan.aspx/GetSupportin=
gDocument/3183b7a3-4d10-42d8-9fd8-50e06ee00691/EDCT%20Program%20Review%20=
Survey%202011.doc"=20
  target=3D_blank>EDCT Program Review Survey 2011.doc</A> =
</LI></UL></DIV>
<DIV id=3Dfooter>SBCCD =C2=A9 Copyright 2011 =
</DIV></DIV></DIV></BODY></HTML>

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Public/css/Site.css

BODY {
	PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #5c87b2; MARGIN: 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: Verdana, Helvetica, =
Sans-Serif; COLOR: #696969; FONT-SIZE: 0.75em; PADDING-TOP: 0px
}
A:link {
	COLOR: #034af3; TEXT-DECORATION: underline
}
A:visited {
	COLOR: #505abc
}
A:hover {
	COLOR: #1d60ff; TEXT-DECORATION: none
}
A:active {
	COLOR: #12eb87
}
P {
	LINE-HEIGHT: 1.6em; MARGIN: 1em 0px
}
UL {
	LINE-HEIGHT: 1.6em; MARGIN: 1em 0px
}
H1 {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000; FONT-SIZE: =
1.5em
}
DIV#title DIV {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000; FONT-SIZE: =
1.5em
}
H2 {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000; FONT-SIZE: =
1.5em
}
H3 {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000; FONT-SIZE: =
1.5em
}
H4 {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000; FONT-SIZE: =
1.5em
}
H5 {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000; FONT-SIZE: =
1.5em
}
H6 {
	FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #000; FONT-SIZE: =
1.5em
}
H1 {
	PADDING-BOTTOM: 0px; MARGIN-BOTTOM: 0px; FONT-SIZE: 2em
}
DIV#title DIV {
	PADDING-BOTTOM: 0px; MARGIN-BOTTOM: 0px; FONT-SIZE: 2em
}
H2 {
	PADDING-BOTTOM: 10px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
PADDING-TOP: 0px
}
H3 {
	FONT-SIZE: 1.2em
}
H4 {
	FONT-SIZE: 1.1em
}
H5 {
	FONT-SIZE: 1em
}
H6 {
	FONT-SIZE: 1em
}
.rightColumn > H1 {
	MARGIN-TOP: 0px
}
.rightColumn > H2 {
	MARGIN-TOP: 0px
}
.leftColumn > H1 {
	MARGIN-TOP: 0px
}
.leftColumn > H2 {
	MARGIN-TOP: 0px
}
.page {
	WIDTH: 90%; MARGIN-LEFT: auto; MARGIN-RIGHT: auto
}
#header {
	POSITION: relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; MARGIN-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 0px
}
#header H1 {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: =
5px; LINE-HEIGHT: 2em; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #fff; FONT-SIZE: =
32px !important; BORDER-TOP: medium none; FONT-WEIGHT: bold; =
BORDER-RIGHT: medium none; PADDING-TOP: 5px
}
#header DIV#title DIV {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: =
5px; LINE-HEIGHT: 2em; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #fff; FONT-SIZE: =
32px !important; BORDER-TOP: medium none; FONT-WEIGHT: bold; =
BORDER-RIGHT: medium none; PADDING-TOP: 5px
}
#main {
	PADDING-BOTTOM: 15px; BACKGROUND-COLOR: #fff; PADDING-LEFT: 30px; =
PADDING-RIGHT: 30px; MARGIN-BOTTOM: 30px; PADDING-TOP: 30px; _height: =
1px
}
#footer {
	TEXT-ALIGN: center; PADDING-BOTTOM: 10px; LINE-HEIGHT: normal; MARGIN: =
0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; COLOR: #999; FONT-SIZE: =
0.9em; PADDING-TOP: 10px
}
UL#menu {
	BORDER-BOTTOM: #5c87b2 1px solid; POSITION: relative; TEXT-ALIGN: =
right; PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
UL#menu LI {
	LIST-STYLE-TYPE: none; DISPLAY: inline; LIST-STYLE-IMAGE: none
}
UL#menu LI#greeting {
	PADDING-BOTTOM: 10px; LINE-HEIGHT: 2.8em; PADDING-LEFT: 20px; =
PADDING-RIGHT: 20px; COLOR: #fff; FONT-WEIGHT: bold; TEXT-DECORATION: =
none; PADDING-TOP: 10px
}
UL#menu LI A {
	PADDING-BOTTOM: 10px; LINE-HEIGHT: 2.8em; BACKGROUND-COLOR: #e8eef4; =
PADDING-LEFT: 20px; PADDING-RIGHT: 20px; COLOR: #034af3; FONT-WEIGHT: =
bold; TEXT-DECORATION: none; PADDING-TOP: 10px
}
UL#menu LI A:hover {
	BACKGROUND-COLOR: #fff; TEXT-DECORATION: none
}
UL#menu LI A:active {
	BACKGROUND-COLOR: #a6e2a6; TEXT-DECORATION: none
}
UL#menu LI.selected A {
	BACKGROUND-COLOR: #fff; COLOR: #000
}
FIELDSET {
	BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; =
PADDING-BOTTOM: 1em; MARGIN: 1em 0px; PADDING-LEFT: 1em; PADDING-RIGHT: =
1em; BORDER-TOP: #ccc 1px solid; BORDER-RIGHT: #ccc 1px solid; =
PADDING-TOP: 1em
}
FIELDSET P {
	MARGIN: 2px 12px 10px 10px
}
LEGEND {
	PADDING-BOTTOM: 8px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px; FONT-SIZE: =
1.1em; FONT-WEIGHT: 600; PADDING-TOP: 2px
}
INPUT[type=3D'text'] {
	BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; WIDTH: =
200px; BORDER-TOP: #ccc 1px solid; BORDER-RIGHT: #ccc 1px solid
}
INPUT[type=3D'password'] {
	BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; WIDTH: =
200px; BORDER-TOP: #ccc 1px solid; BORDER-RIGHT: #ccc 1px solid
}
TABLE {
	BORDER-BOTTOM: #e8eef4 1px solid; BORDER-LEFT: #e8eef4 1px solid; =
BORDER-COLLAPSE: collapse; BORDER-TOP: #e8eef4 1px solid; BORDER-RIGHT: =
#e8eef4 1px solid
}
TABLE TD {
	BORDER-BOTTOM: #e8eef4 1px solid; BORDER-LEFT: #e8eef4 1px solid; =
PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BORDER-TOP: =
#e8eef4 1px solid; BORDER-RIGHT: #e8eef4 1px solid; PADDING-TOP: 5px
}
TABLE TH {
	BORDER-BOTTOM: #e8eef4 1px solid; TEXT-ALIGN: left; BORDER-LEFT: =
#e8eef4 1px solid; PADDING-BOTTOM: 6px; BACKGROUND-COLOR: #e8eef4; =
PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BORDER-TOP: #e8eef4 1px solid; =
BORDER-RIGHT: #e8eef4 1px solid; PADDING-TOP: 6px
}
.clear {
	CLEAR: both
}
.error {
	COLOR: red
}
#menucontainer {
	MARGIN-TOP: 65px
}
DIV#title {
	TEXT-ALIGN: left; DISPLAY: block; FLOAT: left
}
#logindisplay {
	TEXT-ALIGN: right; MARGIN: 10px; DISPLAY: block; COLOR: white; =
FONT-SIZE: 1.1em
}
#logindisplay A:link {
	COLOR: white; TEXT-DECORATION: underline
}
#logindisplay A:visited {
	COLOR: white; TEXT-DECORATION: underline
}
#logindisplay A:hover {
	COLOR: white; TEXT-DECORATION: none
}
.field-validation-error {
	COLOR: #ff0000
}
.field-validation-valid {
	DISPLAY: none
}
.input-validation-error {
	BORDER-BOTTOM: #ff0000 1px solid; BORDER-LEFT: #ff0000 1px solid; =
BACKGROUND-COLOR: #ffeeee; BORDER-TOP: #ff0000 1px solid; BORDER-RIGHT: =
#ff0000 1px solid
}
.validation-summary-errors {
	COLOR: #ff0000; FONT-WEIGHT: bold
}
.validation-summary-valid {
	DISPLAY: none
}
.display-field {
	MARGIN: 0.5em 0px
}
.editor-field {
	MARGIN: 0.5em 0px
}
.display-label {
	MARGIN: 0.5em 0px; FONT-WEIGHT: bold
}
.editor-label {
	MARGIN: 0.5em 0px; FONT-WEIGHT: bold
}
.text-box {
	WIDTH: 30em
}
.multi-line.text-box {
	HEIGHT: 6.5em
}
.tri-state {
	WIDTH: 6em
}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Public/css/styles.css

BODY {
	LINE-HEIGHT: 1.25; BACKGROUND-COLOR: #5c87b2; FONT-FAMILY: Verdana, =
Helvetica, Sans-Serif; COLOR: #000; FONT-SIZE: 0.65em
}
H1 {
	PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; MARGIN: 1em 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; FONT-SIZE: 2em; PADDING-TOP: 0px
}
H2 {
	PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; MARGIN: 1.11em 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-SIZE: 1.8em; PADDING-TOP: =
0px
}
H3 {
	PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; MARGIN: 1.25em 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-SIZE: 1.6em; PADDING-TOP: =
0px
}
H4 {
	PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; MARGIN: 1.25em 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-SIZE: 1.6em; PADDING-TOP: =
0px
}
H5 {
	PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; MARGIN: 1.25em 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-SIZE: 1.6em; PADDING-TOP: =
0px
}
H6 {
	PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; MARGIN: 1.25em 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-SIZE: 1.6em; PADDING-TOP: =
0px
}
PRE {
	BORDER-BOTTOM: black 0.1em solid; BORDER-LEFT: black 0.1em solid; =
WIDTH: 100%; OVERFLOW: scroll; BORDER-TOP: black 0.1em solid; =
BORDER-RIGHT: black 0.1em solid
}
.element-display {
	BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; =
PADDING-BOTTOM: 1em; PADDING-LEFT: 1em; PADDING-RIGHT: 1em; BORDER-TOP: =
black 1px solid; BORDER-RIGHT: black 1px solid; PADDING-TOP: 1em
}
.cke_skin_office2003 INPUT {
	BORDER-RIGHT-WIDTH: 0px; WIDTH: auto; BORDER-TOP-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px
}
.validation-summary-errors SPAN {
	FONT-SIZE: 1.3em
}
.info {
	BORDER-BOTTOM: #006600 4px solid; TEXT-ALIGN: center; PADDING-BOTTOM: =
6px; BACKGROUND-COLOR: #ccffcc; PADDING-LEFT: 6px; PADDING-RIGHT: 6px; =
FONT-FAMILY: helvetica; COLOR: #339933; FONT-SIZE: 1.1em; BORDER-TOP: =
#006600 1px solid; CURSOR: pointer; FONT-WEIGHT: bold; PADDING-TOP: 6px
}
.warning {
	BORDER-BOTTOM: #cc9900 4px solid; TEXT-ALIGN: center; PADDING-BOTTOM: =
6px; BACKGROUND-COLOR: #ffff99; PADDING-LEFT: 6px; PADDING-RIGHT: 6px; =
FONT-FAMILY: helvetica; COLOR: #663300; FONT-SIZE: 0.9em; BORDER-TOP: =
#cc9900 1px solid; CURSOR: pointer; FONT-WEIGHT: bold; PADDING-TOP: 6px
}
.error {
	BORDER-BOTTOM: #800000 4px solid; TEXT-ALIGN: center; PADDING-BOTTOM: =
4px; BACKGROUND-COLOR: #ffcc99; PADDING-LEFT: 4px; PADDING-RIGHT: 4px; =
FONT-FAMILY: helvetica; COLOR: #990000; FONT-SIZE: 1.1em; BORDER-TOP: =
#800000 1px solid; CURSOR: pointer; FONT-WEIGHT: bold; PADDING-TOP: 4px
}
.error-message {
	TEXT-ALIGN: center; COLOR: red; FONT-SIZE: 1em; FONT-WEIGHT: bold
}
.failure {
	TEXT-ALIGN: center; COLOR: red; FONT-SIZE: 1em; FONT-WEIGHT: bold
}
#main .message {
	TEXT-ALIGN: center; COLOR: green; FONT-SIZE: 1em; FONT-WEIGHT: bold
}
.success {
	TEXT-ALIGN: center; COLOR: green; FONT-SIZE: 1em; FONT-WEIGHT: bold
}
.finalized {
	COLOR: green; FONT-WEIGHT: bold
}
.draft {
	COLOR: red; FONT-WEIGHT: bold
}
.instructions {
	LIST-STYLE-TYPE: lower-alpha
}
.instructions OL {
	LIST-STYLE-TYPE: lower-roman
}
.display-row {
	ZOOM: 1; CLEAR: both
}
.editor-row {
	ZOOM: 1; CLEAR: both
}
.display-row:after {
	DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: both; CONTENT: =
"."
}
.editor-row:after {
	DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: both; CONTENT: =
"."
}
.display-label {
	MARGIN: 0.1em 0px; FLOAT: left
}
.editor-label {
	MARGIN: 0.1em 0px; FLOAT: left
}
.display-instructions {
	FLOAT: none; CLEAR: both
}
.editor-instructions {
	FLOAT: none; CLEAR: both
}
.display-field {
	MARGIN: 0.1em 0.5em 0.1em 1em; FLOAT: left
}
.editor-field {
	MARGIN: 0.1em 0.5em 0.1em 1em; FLOAT: left
}
.rich-text-row .display-label {
	FLOAT: none
}
.rich-text-row .editor-label {
	FLOAT: none
}
.rich-text-row .display-field {
	MARGIN: 0px; FLOAT: none
}
.rich-text-row .editor-field {
	MARGIN: 0px; FLOAT: none
}
.move_up {
	VERTICAL-ALIGN: text-bottom
}
.move_down {
	VERTICAL-ALIGN: text-bottom
}
.delete {
	VERTICAL-ALIGN: text-bottom
}
.add {
	VERTICAL-ALIGN: text-bottom
}
.move_item {
	VERTICAL-ALIGN: text-bottom
}
.collapsible-body {
	BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; =
PADDING-BOTTOM: 1em; MARGIN: 1em; PADDING-LEFT: 1em; PADDING-RIGHT: 1em; =
BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid; PADDING-TOP: =
1em
}
.collapsible-body UL {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 1em; PADDING-RIGHT: 1em; =
PADDING-TOP: 0px
}

@media Print   =20
{
#header {
	DISPLAY: none
}
#editing-options {
	DISPLAY: none
}
.page {
	MARGIN: auto; WIDTH: auto
}
#main {
	PADDING-BOTTOM: 0px; MARGIN: auto; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}

}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Public/css/editor.css

P {
	PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; MARGIN: 1.53em 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-SIZE: 1.3em; PADDING-TOP: =
0px
}
DIV.editor-label {
	LINE-HEIGHT: 1.5em; FONT-SIZE: 1.3em
}
DIV.editor-field {
	LINE-HEIGHT: 1.5em; FONT-SIZE: 1.3em
}
DIV.display-label {
	LINE-HEIGHT: 1.5em; FONT-SIZE: 1.3em
}
DIV.display-field {
	LINE-HEIGHT: 1.5em; FONT-SIZE: 1.3em
}
UL {
	PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.6em; MARGIN: 0.83em 0px; =
PADDING-LEFT: 2.77em; PADDING-RIGHT: 2.77em; FONT-SIZE: 1.3em; =
PADDING-TOP: 0px
}
OL {
	PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.6em; MARGIN: 0.83em 0px; =
PADDING-LEFT: 2.77em; PADDING-RIGHT: 2.77em; FONT-SIZE: 1.3em; =
PADDING-TOP: 0px
}
UL LI {
	LINE-HEIGHT: 1.4em; MARGIN: 0.5em 0px; FONT-SIZE: 1em
}
OL LI {
	LINE-HEIGHT: 1.4em; MARGIN: 0.5em 0px; FONT-SIZE: 1em
}
UL UL {
	MARGIN: 0.3em 0px; FONT-SIZE: 1em
}
UL OL {
	MARGIN: 0.3em 0px; FONT-SIZE: 1em
}
OL OL {
	MARGIN: 0.3em 0px; FONT-SIZE: 1em
}
OL UL {
	MARGIN: 0.3em 0px; FONT-SIZE: 1em
}
UL P {
	FONT-SIZE: 1em
}
UL DIV.display-label {
	FONT-SIZE: 1em
}
UL DIV.display-field {
	FONT-SIZE: 1em
}
DIV.display-field P {
	FONT-SIZE: 1em
}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Plan.aspx/View/jquery.ui.core.css

.ui-helper-hidden {
	DISPLAY: none
}
.ui-helper-hidden-accessible {
	CLIP: rect(1px 1px 1px 1px); POSITION: absolute !important
}
.ui-helper-reset {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; LINE-HEIGHT: =
1.3; LIST-STYLE-TYPE: none; MARGIN: 0px; OUTLINE-STYLE: none; =
OUTLINE-COLOR: invert; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; =
PADDING-RIGHT: 0px; FONT-SIZE: 100%; BORDER-TOP: 0px; LIST-STYLE-IMAGE: =
none; BORDER-RIGHT: 0px; TEXT-DECORATION: none; PADDING-TOP: 0px
}
.ui-helper-clearfix:after {
	DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: both; CONTENT: =
"."
}
.ui-helper-clearfix {
	DISPLAY: inline-block
}
* HTML .ui-helper-clearfix {
	HEIGHT: 1%
}
.ui-helper-clearfix {
	DISPLAY: block
}
.ui-helper-zfix {
	POSITION: absolute; FILTER: Alpha(Opacity=3D0); WIDTH: 100%; HEIGHT: =
100%; TOP: 0px; LEFT: 0px; opacity: 0
}
.ui-state-disabled {
	CURSOR: default !important
}
.ui-icon {
	TEXT-INDENT: -99999px; DISPLAY: block; BACKGROUND-REPEAT: no-repeat; =
OVERFLOW: hidden
}
.ui-widget-overlay {
	POSITION: absolute; WIDTH: 100%; HEIGHT: 100%; TOP: 0px; LEFT: 0px
}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Plan.aspx/View/jquery.ui.resizable.css

.ui-resizable {
	POSITION: relative
}
.ui-resizable-handle {
	BACKGROUND-IMAGE: =
url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=3D); =
Z-INDEX: 99999; POSITION: absolute; DISPLAY: block; FONT-SIZE: 0.1px
}
.ui-resizable-disabled .ui-resizable-handle {
	DISPLAY: none
}
.ui-resizable-autohide .ui-resizable-handle {
	DISPLAY: none
}
.ui-resizable-n {
	WIDTH: 100%; HEIGHT: 7px; TOP: -5px; CURSOR: n-resize; LEFT: 0px
}
.ui-resizable-s {
	WIDTH: 100%; BOTTOM: -5px; HEIGHT: 7px; CURSOR: s-resize; LEFT: 0px
}
.ui-resizable-e {
	WIDTH: 7px; HEIGHT: 100%; TOP: 0px; CURSOR: e-resize; RIGHT: -5px
}
.ui-resizable-w {
	WIDTH: 7px; HEIGHT: 100%; TOP: 0px; CURSOR: w-resize; LEFT: -5px
}
.ui-resizable-se {
	WIDTH: 12px; BOTTOM: 1px; HEIGHT: 12px; CURSOR: se-resize; RIGHT: 1px
}
.ui-resizable-sw {
	WIDTH: 9px; BOTTOM: -5px; HEIGHT: 9px; CURSOR: sw-resize; LEFT: -5px
}
.ui-resizable-nw {
	WIDTH: 9px; HEIGHT: 9px; TOP: -5px; CURSOR: nw-resize; LEFT: -5px
}
.ui-resizable-ne {
	WIDTH: 9px; HEIGHT: 9px; TOP: -5px; CURSOR: ne-resize; RIGHT: -5px
}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Plan.aspx/View/jquery.ui.selectable.css

.ui-selectable-helper {
	Z-INDEX: 100; BORDER-BOTTOM: black 1px dotted; POSITION: absolute; =
BORDER-LEFT: black 1px dotted; BORDER-TOP: black 1px dotted; =
BORDER-RIGHT: black 1px dotted
}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Plan.aspx/View/jquery.ui.accordion.css

.ui-accordion {
	WIDTH: 100%
}
.ui-accordion .ui-accordion-header {
	POSITION: relative; MARGIN-TOP: 1px; ZOOM: 1; CURSOR: pointer
}
.ui-accordion .ui-accordion-li-fix {
	DISPLAY: inline
}
.ui-accordion .ui-accordion-header-active {
	BORDER-BOTTOM: 0px
}
.ui-accordion .ui-accordion-header A {
	PADDING-BOTTOM: 0.5em; PADDING-LEFT: 0.7em; PADDING-RIGHT: 0.5em; =
DISPLAY: block; FONT-SIZE: 1em; PADDING-TOP: 0.5em
}
.ui-accordion-icons .ui-accordion-header A {
	PADDING-LEFT: 2.2em
}
.ui-accordion .ui-accordion-header .ui-icon {
	POSITION: absolute; MARGIN-TOP: -8px; TOP: 50%; LEFT: 0.5em
}
.ui-accordion .ui-accordion-content {
	POSITION: relative; PADDING-BOTTOM: 1em; MARGIN-TOP: -2px; =
PADDING-LEFT: 2.2em; PADDING-RIGHT: 2.2em; ZOOM: 1; DISPLAY: none; =
MARGIN-BOTTOM: 2px; OVERFLOW: auto; BORDER-TOP: 0px; TOP: 1px; =
PADDING-TOP: 1em
}
.ui-accordion .ui-accordion-content-active {
	DISPLAY: block
}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Plan.aspx/View/jquery.ui.autocomplete.css

.ui-autocomplete {
	POSITION: absolute; CURSOR: default
}
* HTML .ui-autocomplete {
	WIDTH: 1px
}
.ui-menu {
	PADDING-BOTTOM: 2px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: =
2px; PADDING-RIGHT: 2px; DISPLAY: block; FLOAT: left; LIST-STYLE-IMAGE: =
none; PADDING-TOP: 2px
}
.ui-menu .ui-menu {
	MARGIN-TOP: -3px
}
.ui-menu .ui-menu-item {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 100%; =
PADDING-RIGHT: 0px; ZOOM: 1; FLOAT: left; CLEAR: left; PADDING-TOP: 0px
}
.ui-menu .ui-menu-item A {
	PADDING-BOTTOM: 0.2em; LINE-HEIGHT: 1.5; PADDING-LEFT: 0.4em; =
PADDING-RIGHT: 0.4em; ZOOM: 1; DISPLAY: block; TEXT-DECORATION: none; =
PADDING-TOP: 0.2em
}
.ui-menu .ui-menu-item A.ui-state-hover {
	MARGIN: -1px; FONT-WEIGHT: normal
}
.ui-menu .ui-menu-item A.ui-state-active {
	MARGIN: -1px; FONT-WEIGHT: normal
}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Plan.aspx/View/jquery.ui.button.css

.ui-button {
	POSITION: relative; TEXT-ALIGN: center; PADDING-BOTTOM: 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; ZOOM: 1; DISPLAY: inline-block; =
OVERFLOW: visible; CURSOR: pointer; MARGIN-RIGHT: 0.1em; =
TEXT-DECORATION: none !important; PADDING-TOP: 0px
}
.ui-button-icon-only {
	WIDTH: 2.2em
}
BUTTON.ui-button-icon-only {
	WIDTH: 2.4em
}
.ui-button-icons-only {
	WIDTH: 3.4em
}
BUTTON.ui-button-icons-only {
	WIDTH: 3.7em
}
.ui-button .ui-button-text {
	LINE-HEIGHT: 1.4; DISPLAY: block
}
.ui-button-text-only .ui-button-text {
	PADDING-BOTTOM: 0.4em; PADDING-LEFT: 1em; PADDING-RIGHT: 1em; =
PADDING-TOP: 0.4em
}
.ui-button-icon-only .ui-button-text {
	PADDING-BOTTOM: 0.4em; TEXT-INDENT: -1342177.28px; PADDING-LEFT: 0.4em; =
PADDING-RIGHT: 0.4em; PADDING-TOP: 0.4em
}
.ui-button-icons-only .ui-button-text {
	PADDING-BOTTOM: 0.4em; TEXT-INDENT: -1342177.28px; PADDING-LEFT: 0.4em; =
PADDING-RIGHT: 0.4em; PADDING-TOP: 0.4em
}
.ui-button-text-icon-primary .ui-button-text {
	PADDING-BOTTOM: 0.4em; PADDING-LEFT: 2.1em; PADDING-RIGHT: 1em; =
PADDING-TOP: 0.4em
}
.ui-button-text-icons .ui-button-text {
	PADDING-BOTTOM: 0.4em; PADDING-LEFT: 2.1em; PADDING-RIGHT: 1em; =
PADDING-TOP: 0.4em
}
.ui-button-text-icon-secondary .ui-button-text {
	PADDING-BOTTOM: 0.4em; PADDING-LEFT: 1em; PADDING-RIGHT: 2.1em; =
PADDING-TOP: 0.4em
}
.ui-button-text-icons .ui-button-text {
	PADDING-BOTTOM: 0.4em; PADDING-LEFT: 1em; PADDING-RIGHT: 2.1em; =
PADDING-TOP: 0.4em
}
.ui-button-text-icons .ui-button-text {
	PADDING-LEFT: 2.1em; PADDING-RIGHT: 2.1em
}
INPUT.ui-button {
	PADDING-BOTTOM: 0.4em; PADDING-LEFT: 1em; PADDING-RIGHT: 1em; =
PADDING-TOP: 0.4em
}
.ui-button-icon-only .ui-icon {
	POSITION: absolute; MARGIN-TOP: -8px; TOP: 50%
}
.ui-button-text-icon-primary .ui-icon {
	POSITION: absolute; MARGIN-TOP: -8px; TOP: 50%
}
.ui-button-text-icon-secondary .ui-icon {
	POSITION: absolute; MARGIN-TOP: -8px; TOP: 50%
}
.ui-button-text-icons .ui-icon {
	POSITION: absolute; MARGIN-TOP: -8px; TOP: 50%
}
.ui-button-icons-only .ui-icon {
	POSITION: absolute; MARGIN-TOP: -8px; TOP: 50%
}
.ui-button-icon-only .ui-icon {
	MARGIN-LEFT: -8px; LEFT: 50%
}
.ui-button-text-icon-primary .ui-button-icon-primary {
	LEFT: 0.5em
}
.ui-button-text-icons .ui-button-icon-primary {
	LEFT: 0.5em
}
.ui-button-icons-only .ui-button-icon-primary {
	LEFT: 0.5em
}
.ui-button-text-icon-secondary .ui-button-icon-secondary {
	RIGHT: 0.5em
}
.ui-button-text-icons .ui-button-icon-secondary {
	RIGHT: 0.5em
}
.ui-button-icons-only .ui-button-icon-secondary {
	RIGHT: 0.5em
}
.ui-button-text-icons .ui-button-icon-secondary {
	RIGHT: 0.5em
}
.ui-button-icons-only .ui-button-icon-secondary {
	RIGHT: 0.5em
}
.ui-buttonset {
	MARGIN-RIGHT: 7px
}
.ui-buttonset .ui-button {
	MARGIN-LEFT: 0px; MARGIN-RIGHT: -0.3em
}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Plan.aspx/View/jquery.ui.dialog.css

.ui-dialog {
	POSITION: absolute; PADDING-BOTTOM: 0.2em; PADDING-LEFT: 0.2em; WIDTH: =
300px; PADDING-RIGHT: 0.2em; OVERFLOW: hidden; PADDING-TOP: 0.2em
}
.ui-dialog .ui-dialog-titlebar {
	POSITION: relative; PADDING-BOTTOM: 0.4em; PADDING-LEFT: 1em; =
PADDING-RIGHT: 1em; PADDING-TOP: 0.4em
}
.ui-dialog .ui-dialog-title {
	MARGIN: 0.1em 16px 0.1em 0px; FLOAT: left
}
.ui-dialog .ui-dialog-titlebar-close {
	POSITION: absolute; PADDING-BOTTOM: 1px; MARGIN: -10px 0px 0px; =
PADDING-LEFT: 1px; WIDTH: 19px; PADDING-RIGHT: 1px; HEIGHT: 18px; TOP: =
50%; RIGHT: 0.3em; PADDING-TOP: 1px
}
.ui-dialog .ui-dialog-titlebar-close SPAN {
	MARGIN: 1px; DISPLAY: block
}
.ui-dialog .ui-dialog-titlebar-close:hover {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
PADDING-TOP: 0px
}
.ui-dialog .ui-dialog-titlebar-close:focus {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
PADDING-TOP: 0px
}
.ui-dialog .ui-dialog-content {
	BORDER-BOTTOM: 0px; POSITION: relative; BORDER-LEFT: 0px; =
PADDING-BOTTOM: 0.5em; PADDING-LEFT: 1em; PADDING-RIGHT: 1em; ZOOM: 1; =
BACKGROUND: none transparent scroll repeat 0% 0%; OVERFLOW: auto; =
BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0.5em
}
.ui-dialog .ui-dialog-buttonpane {
	BACKGROUND-IMAGE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0.5em; =
BORDER-RIGHT-WIDTH: 0px; MARGIN: 0.5em 0px 0px; PADDING-LEFT: 0.4em; =
PADDING-RIGHT: 1em; BORDER-TOP-WIDTH: 1px; BORDER-BOTTOM-WIDTH: 0px; =
BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0.3em
}
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
	FLOAT: right
}
.ui-dialog .ui-dialog-buttonpane BUTTON {
	MARGIN: 0.5em 0.4em 0.5em 0px; CURSOR: pointer
}
.ui-dialog .ui-resizable-se {
	WIDTH: 14px; BOTTOM: 3px; HEIGHT: 14px; RIGHT: 3px
}
.ui-draggable .ui-dialog-titlebar {
	CURSOR: move
}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Plan.aspx/View/jquery.ui.slider.css

.ui-slider {
	POSITION: relative; TEXT-ALIGN: left
}
.ui-slider .ui-slider-handle {
	Z-INDEX: 2; POSITION: absolute; WIDTH: 1.2em; HEIGHT: 1.2em; CURSOR: =
default
}
.ui-slider .ui-slider-range {
	Z-INDEX: 1; BORDER-BOTTOM: 0px; POSITION: absolute; BORDER-LEFT: 0px; =
DISPLAY: block; BACKGROUND-POSITION: 0px 0px; FONT-SIZE: 0.7em; =
BORDER-TOP: 0px; BORDER-RIGHT: 0px
}
.ui-slider-horizontal {
	HEIGHT: 0.8em
}
.ui-slider-horizontal .ui-slider-handle {
	MARGIN-LEFT: -0.6em; TOP: -0.3em
}
.ui-slider-horizontal .ui-slider-range {
	HEIGHT: 100%; TOP: 0px
}
.ui-slider-horizontal .ui-slider-range-min {
	LEFT: 0px
}
.ui-slider-horizontal .ui-slider-range-max {
	RIGHT: 0px
}
.ui-slider-vertical {
	WIDTH: 0.8em; HEIGHT: 100px
}
.ui-slider-vertical .ui-slider-handle {
	MARGIN-BOTTOM: -0.6em; MARGIN-LEFT: 0px; LEFT: -0.3em
}
.ui-slider-vertical .ui-slider-range {
	WIDTH: 100%; LEFT: 0px
}
.ui-slider-vertical .ui-slider-range-min {
	BOTTOM: 0px
}
.ui-slider-vertical .ui-slider-range-max {
	TOP: 0px
}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Plan.aspx/View/jquery.ui.tabs.css

.ui-tabs {
	POSITION: relative; PADDING-BOTTOM: 0.2em; PADDING-LEFT: 0.2em; =
PADDING-RIGHT: 0.2em; ZOOM: 1; PADDING-TOP: 0.2em
}
.ui-tabs .ui-tabs-nav {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0.2em; PADDING-RIGHT: =
0.2em; PADDING-TOP: 0.2em
}
.ui-tabs .ui-tabs-nav LI {
	BORDER-BOTTOM: 0px; POSITION: relative; PADDING-BOTTOM: 0px; =
LIST-STYLE-TYPE: none; MARGIN: 0px 0.2em 1px 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; WHITE-SPACE: nowrap; FLOAT: left; TOP: 1px; =
LIST-STYLE-IMAGE: none; PADDING-TOP: 0px
}
.ui-tabs .ui-tabs-nav LI A {
	PADDING-BOTTOM: 0.5em; PADDING-LEFT: 1em; PADDING-RIGHT: 1em; FLOAT: =
left; TEXT-DECORATION: none; PADDING-TOP: 0.5em
}
.ui-tabs .ui-tabs-nav LI.ui-tabs-selected {
	PADDING-BOTTOM: 1px; MARGIN-BOTTOM: 0px
}
.ui-tabs .ui-tabs-nav LI.ui-tabs-selected A {
	CURSOR: text
}
.ui-tabs .ui-tabs-nav LI.ui-state-disabled A {
	CURSOR: text
}
.ui-tabs .ui-tabs-nav LI.ui-state-processing A {
	CURSOR: text
}
.ui-tabs .ui-tabs-nav LI A {
	CURSOR: pointer
}
.ui-tabs-collapsible.ui-tabs .ui-tabs-nav LI.ui-tabs-selected A {
	CURSOR: pointer
}
.ui-tabs .ui-tabs-panel {
	PADDING-BOTTOM: 1em; BORDER-RIGHT-WIDTH: 0px; PADDING-LEFT: 1.4em; =
PADDING-RIGHT: 1.4em; DISPLAY: block; BACKGROUND: none transparent =
scroll repeat 0% 0%; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; =
BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 1em
}
.ui-tabs .ui-tabs-hide {
	DISPLAY: none !important
}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Plan.aspx/View/jquery.ui.datepicker.css

.ui-datepicker {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0.2em; WIDTH: 17em; PADDING-RIGHT: =
0.2em; DISPLAY: none; PADDING-TOP: 0.2em
}
.ui-datepicker .ui-datepicker-header {
	POSITION: relative; PADDING-BOTTOM: 0.2em; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0.2em
}
.ui-datepicker .ui-datepicker-prev {
	POSITION: absolute; WIDTH: 1.8em; HEIGHT: 1.8em; TOP: 2px
}
.ui-datepicker .ui-datepicker-next {
	POSITION: absolute; WIDTH: 1.8em; HEIGHT: 1.8em; TOP: 2px
}
.ui-datepicker .ui-datepicker-prev-hover {
	TOP: 1px
}
.ui-datepicker .ui-datepicker-next-hover {
	TOP: 1px
}
.ui-datepicker .ui-datepicker-prev {
	LEFT: 2px
}
.ui-datepicker .ui-datepicker-next {
	RIGHT: 2px
}
.ui-datepicker .ui-datepicker-prev-hover {
	LEFT: 1px
}
.ui-datepicker .ui-datepicker-next-hover {
	RIGHT: 1px
}
.ui-datepicker .ui-datepicker-prev SPAN {
	POSITION: absolute; MARGIN-TOP: -8px; DISPLAY: block; MARGIN-LEFT: =
-8px; TOP: 50%; LEFT: 50%
}
.ui-datepicker .ui-datepicker-next SPAN {
	POSITION: absolute; MARGIN-TOP: -8px; DISPLAY: block; MARGIN-LEFT: =
-8px; TOP: 50%; LEFT: 50%
}
.ui-datepicker .ui-datepicker-title {
	TEXT-ALIGN: center; LINE-HEIGHT: 1.8em; MARGIN: 0px 2.3em
}
.ui-datepicker .ui-datepicker-title SELECT {
	MARGIN: 1px 0px; FONT-SIZE: 1em
}
.ui-datepicker SELECT.ui-datepicker-month-year {
	WIDTH: 100%
}
.ui-datepicker SELECT.ui-datepicker-month {
	WIDTH: 49%
}
.ui-datepicker SELECT.ui-datepicker-year {
	WIDTH: 49%
}
.ui-datepicker TABLE {
	MARGIN: 0px 0px 0.4em; WIDTH: 100%; BORDER-COLLAPSE: collapse; =
FONT-SIZE: 0.9em
}
.ui-datepicker TH {
	BORDER-BOTTOM: 0px; TEXT-ALIGN: center; BORDER-LEFT: 0px; =
PADDING-BOTTOM: 0.7em; PADDING-LEFT: 0.3em; PADDING-RIGHT: 0.3em; =
BORDER-TOP: 0px; FONT-WEIGHT: bold; BORDER-RIGHT: 0px; PADDING-TOP: =
0.7em
}
.ui-datepicker TD {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 1px; =
PADDING-LEFT: 1px; PADDING-RIGHT: 1px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 1px
}
.ui-datepicker TD SPAN {
	TEXT-ALIGN: right; PADDING-BOTTOM: 0.2em; PADDING-LEFT: 0.2em; =
PADDING-RIGHT: 0.2em; DISPLAY: block; TEXT-DECORATION: none; =
PADDING-TOP: 0.2em
}
.ui-datepicker TD A {
	TEXT-ALIGN: right; PADDING-BOTTOM: 0.2em; PADDING-LEFT: 0.2em; =
PADDING-RIGHT: 0.2em; DISPLAY: block; TEXT-DECORATION: none; =
PADDING-TOP: 0.2em
}
.ui-datepicker .ui-datepicker-buttonpane {
	BACKGROUND-IMAGE: none; BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; =
PADDING-BOTTOM: 0px; MARGIN: 0.7em 0px 0px; PADDING-LEFT: 0.2em; =
PADDING-RIGHT: 0.2em; BORDER-RIGHT: 0px; PADDING-TOP: 0px
}
.ui-datepicker .ui-datepicker-buttonpane BUTTON {
	PADDING-BOTTOM: 0.3em; MARGIN: 0.5em 0.2em 0.4em; PADDING-LEFT: 0.6em; =
WIDTH: auto; PADDING-RIGHT: 0.6em; FLOAT: right; OVERFLOW: visible; =
CURSOR: pointer; PADDING-TOP: 0.2em
}
.ui-datepicker .ui-datepicker-buttonpane BUTTON.ui-datepicker-current {
	FLOAT: left
}
.ui-datepicker-multi.ui-datepicker {
	WIDTH: auto
}
.ui-datepicker-multi .ui-datepicker-group {
	FLOAT: left
}
.ui-datepicker-multi .ui-datepicker-group TABLE {
	MARGIN: 0px auto 0.4em; WIDTH: 95%
}
.ui-datepicker-multi-2 .ui-datepicker-group {
	WIDTH: 50%
}
.ui-datepicker-multi-3 .ui-datepicker-group {
	WIDTH: 33.3%
}
.ui-datepicker-multi-4 .ui-datepicker-group {
	WIDTH: 25%
}
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header {
	BORDER-LEFT-WIDTH: 0px
}
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
	BORDER-LEFT-WIDTH: 0px
}
.ui-datepicker-multi .ui-datepicker-buttonpane {
	CLEAR: left
}
.ui-datepicker-row-break {
	WIDTH: 100%; CLEAR: both
}
.ui-datepicker-rtl {
	DIRECTION: rtl
}
.ui-datepicker-rtl .ui-datepicker-prev {
	RIGHT: 2px; LEFT: auto
}
.ui-datepicker-rtl .ui-datepicker-next {
	RIGHT: auto; LEFT: 2px
}
.ui-datepicker-rtl .ui-datepicker-prev:hover {
	RIGHT: 1px; LEFT: auto
}
.ui-datepicker-rtl .ui-datepicker-next:hover {
	RIGHT: auto; LEFT: 1px
}
.ui-datepicker-rtl .ui-datepicker-buttonpane {
	CLEAR: right
}
.ui-datepicker-rtl .ui-datepicker-buttonpane BUTTON {
	FLOAT: left
}
.ui-datepicker-rtl .ui-datepicker-buttonpane =
BUTTON.ui-datepicker-current {
	FLOAT: right
}
.ui-datepicker-rtl .ui-datepicker-group {
	FLOAT: right
}
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header {
	BORDER-RIGHT-WIDTH: 0px; BORDER-LEFT-WIDTH: 1px
}
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
	BORDER-RIGHT-WIDTH: 0px; BORDER-LEFT-WIDTH: 1px
}
.ui-datepicker-cover {
	Z-INDEX: -1; POSITION: absolute; FILTER: mask(); WIDTH: 200px; DISPLAY: =
block; HEIGHT: 200px; TOP: -4px; LEFT: -4px
}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Location: https://www.craftonhills.edu/ProgramReview/Plan.aspx/View/jquery.ui.progressbar.css

.ui-progressbar {
	TEXT-ALIGN: left; HEIGHT: 2em
}
.ui-progressbar .ui-progressbar-value {
	MARGIN: -1px; HEIGHT: 100%
}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Location: https://www.craftonhills.edu/ProgramReview/Plan.aspx/View/jquery.ui.base.css

@import url( jquery.ui.core.css );
@import url( jquery.ui.resizable.css );
@import url( jquery.ui.selectable.css );
@import url( jquery.ui.accordion.css );
@import url( jquery.ui.autocomplete.css );
@import url( jquery.ui.button.css );
@import url( jquery.ui.dialog.css );
@import url( jquery.ui.slider.css );
@import url( jquery.ui.tabs.css );
@import url( jquery.ui.datepicker.css );
@import url( jquery.ui.progressbar.css );

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Plan.aspx/View/jquery.ui.theme.css

.ui-widget {
	FONT-FAMILY: Verdana, Arial, sans-serif; FONT-SIZE: 1.1em
}
.ui-widget .ui-widget {
	FONT-SIZE: 1em
}
.ui-widget INPUT {
	FONT-FAMILY: Verdana, Arial, sans-serif; FONT-SIZE: 1em
}
.ui-widget SELECT {
	FONT-FAMILY: Verdana, Arial, sans-serif; FONT-SIZE: 1em
}
.ui-widget TEXTAREA {
	FONT-FAMILY: Verdana, Arial, sans-serif; FONT-SIZE: 1em
}
.ui-widget BUTTON {
	FONT-FAMILY: Verdana, Arial, sans-serif; FONT-SIZE: 1em
}
.ui-widget-content {
	BORDER-BOTTOM: #aaaaaa 1px solid; BORDER-LEFT: #aaaaaa 1px solid; =
BACKGROUND: url(images/ui-bg_flat_75_ffffff_40x100.png) #ffffff repeat-x =
50% 50%; COLOR: #222222; BORDER-TOP: #aaaaaa 1px solid; BORDER-RIGHT: =
#aaaaaa 1px solid
}
.ui-widget-content A {
	COLOR: #222222
}
.ui-widget-header {
	BORDER-BOTTOM: #aaaaaa 1px solid; BORDER-LEFT: #aaaaaa 1px solid; =
BACKGROUND: url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) #cccccc =
repeat-x 50% 50%; COLOR: #222222; BORDER-TOP: #aaaaaa 1px solid; =
FONT-WEIGHT: bold; BORDER-RIGHT: #aaaaaa 1px solid
}
.ui-widget-header A {
	COLOR: #222222
}
.ui-state-default {
	BORDER-BOTTOM: #d3d3d3 1px solid; BORDER-LEFT: #d3d3d3 1px solid; =
BACKGROUND: url(images/ui-bg_glass_75_e6e6e6_1x400.png) #e6e6e6 repeat-x =
50% 50%; COLOR: #555555; BORDER-TOP: #d3d3d3 1px solid; FONT-WEIGHT: =
normal; BORDER-RIGHT: #d3d3d3 1px solid
}
.ui-widget-content .ui-state-default {
	BORDER-BOTTOM: #d3d3d3 1px solid; BORDER-LEFT: #d3d3d3 1px solid; =
BACKGROUND: url(images/ui-bg_glass_75_e6e6e6_1x400.png) #e6e6e6 repeat-x =
50% 50%; COLOR: #555555; BORDER-TOP: #d3d3d3 1px solid; FONT-WEIGHT: =
normal; BORDER-RIGHT: #d3d3d3 1px solid
}
.ui-widget-header .ui-state-default {
	BORDER-BOTTOM: #d3d3d3 1px solid; BORDER-LEFT: #d3d3d3 1px solid; =
BACKGROUND: url(images/ui-bg_glass_75_e6e6e6_1x400.png) #e6e6e6 repeat-x =
50% 50%; COLOR: #555555; BORDER-TOP: #d3d3d3 1px solid; FONT-WEIGHT: =
normal; BORDER-RIGHT: #d3d3d3 1px solid
}
.ui-state-default A {
	COLOR: #555555; TEXT-DECORATION: none
}
.ui-state-default A:link {
	COLOR: #555555; TEXT-DECORATION: none
}
.ui-state-default A:visited {
	COLOR: #555555; TEXT-DECORATION: none
}
.ui-state-hover {
	BORDER-BOTTOM: #999999 1px solid; BORDER-LEFT: #999999 1px solid; =
BACKGROUND: url(images/ui-bg_glass_75_dadada_1x400.png) #dadada repeat-x =
50% 50%; COLOR: #212121; BORDER-TOP: #999999 1px solid; FONT-WEIGHT: =
normal; BORDER-RIGHT: #999999 1px solid
}
.ui-widget-content .ui-state-hover {
	BORDER-BOTTOM: #999999 1px solid; BORDER-LEFT: #999999 1px solid; =
BACKGROUND: url(images/ui-bg_glass_75_dadada_1x400.png) #dadada repeat-x =
50% 50%; COLOR: #212121; BORDER-TOP: #999999 1px solid; FONT-WEIGHT: =
normal; BORDER-RIGHT: #999999 1px solid
}
.ui-widget-header .ui-state-hover {
	BORDER-BOTTOM: #999999 1px solid; BORDER-LEFT: #999999 1px solid; =
BACKGROUND: url(images/ui-bg_glass_75_dadada_1x400.png) #dadada repeat-x =
50% 50%; COLOR: #212121; BORDER-TOP: #999999 1px solid; FONT-WEIGHT: =
normal; BORDER-RIGHT: #999999 1px solid
}
.ui-state-focus {
	BORDER-BOTTOM: #999999 1px solid; BORDER-LEFT: #999999 1px solid; =
BACKGROUND: url(images/ui-bg_glass_75_dadada_1x400.png) #dadada repeat-x =
50% 50%; COLOR: #212121; BORDER-TOP: #999999 1px solid; FONT-WEIGHT: =
normal; BORDER-RIGHT: #999999 1px solid
}
.ui-widget-content .ui-state-focus {
	BORDER-BOTTOM: #999999 1px solid; BORDER-LEFT: #999999 1px solid; =
BACKGROUND: url(images/ui-bg_glass_75_dadada_1x400.png) #dadada repeat-x =
50% 50%; COLOR: #212121; BORDER-TOP: #999999 1px solid; FONT-WEIGHT: =
normal; BORDER-RIGHT: #999999 1px solid
}
.ui-widget-header .ui-state-focus {
	BORDER-BOTTOM: #999999 1px solid; BORDER-LEFT: #999999 1px solid; =
BACKGROUND: url(images/ui-bg_glass_75_dadada_1x400.png) #dadada repeat-x =
50% 50%; COLOR: #212121; BORDER-TOP: #999999 1px solid; FONT-WEIGHT: =
normal; BORDER-RIGHT: #999999 1px solid
}
.ui-state-hover A {
	COLOR: #212121; TEXT-DECORATION: none
}
.ui-state-hover A:hover {
	COLOR: #212121; TEXT-DECORATION: none
}
.ui-state-active {
	BORDER-BOTTOM: #aaaaaa 1px solid; BORDER-LEFT: #aaaaaa 1px solid; =
BACKGROUND: url(images/ui-bg_glass_65_ffffff_1x400.png) #ffffff repeat-x =
50% 50%; COLOR: #212121; BORDER-TOP: #aaaaaa 1px solid; FONT-WEIGHT: =
normal; BORDER-RIGHT: #aaaaaa 1px solid
}
.ui-widget-content .ui-state-active {
	BORDER-BOTTOM: #aaaaaa 1px solid; BORDER-LEFT: #aaaaaa 1px solid; =
BACKGROUND: url(images/ui-bg_glass_65_ffffff_1x400.png) #ffffff repeat-x =
50% 50%; COLOR: #212121; BORDER-TOP: #aaaaaa 1px solid; FONT-WEIGHT: =
normal; BORDER-RIGHT: #aaaaaa 1px solid
}
.ui-widget-header .ui-state-active {
	BORDER-BOTTOM: #aaaaaa 1px solid; BORDER-LEFT: #aaaaaa 1px solid; =
BACKGROUND: url(images/ui-bg_glass_65_ffffff_1x400.png) #ffffff repeat-x =
50% 50%; COLOR: #212121; BORDER-TOP: #aaaaaa 1px solid; FONT-WEIGHT: =
normal; BORDER-RIGHT: #aaaaaa 1px solid
}
.ui-state-active A {
	COLOR: #212121; TEXT-DECORATION: none
}
.ui-state-active A:link {
	COLOR: #212121; TEXT-DECORATION: none
}
.ui-state-active A:visited {
	COLOR: #212121; TEXT-DECORATION: none
}
.ui-widget :active {
	OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium
}
.ui-state-highlight {
	BORDER-BOTTOM: #fcefa1 1px solid; BORDER-LEFT: #fcefa1 1px solid; =
BACKGROUND: url(images/ui-bg_glass_55_fbf9ee_1x400.png) #fbf9ee repeat-x =
50% 50%; COLOR: #363636; BORDER-TOP: #fcefa1 1px solid; BORDER-RIGHT: =
#fcefa1 1px solid
}
.ui-widget-content .ui-state-highlight {
	BORDER-BOTTOM: #fcefa1 1px solid; BORDER-LEFT: #fcefa1 1px solid; =
BACKGROUND: url(images/ui-bg_glass_55_fbf9ee_1x400.png) #fbf9ee repeat-x =
50% 50%; COLOR: #363636; BORDER-TOP: #fcefa1 1px solid; BORDER-RIGHT: =
#fcefa1 1px solid
}
.ui-widget-header .ui-state-highlight {
	BORDER-BOTTOM: #fcefa1 1px solid; BORDER-LEFT: #fcefa1 1px solid; =
BACKGROUND: url(images/ui-bg_glass_55_fbf9ee_1x400.png) #fbf9ee repeat-x =
50% 50%; COLOR: #363636; BORDER-TOP: #fcefa1 1px solid; BORDER-RIGHT: =
#fcefa1 1px solid
}
.ui-state-highlight A {
	COLOR: #363636
}
.ui-widget-content .ui-state-highlight A {
	COLOR: #363636
}
.ui-widget-header .ui-state-highlight A {
	COLOR: #363636
}
.ui-state-error {
	BORDER-BOTTOM: #cd0a0a 1px solid; BORDER-LEFT: #cd0a0a 1px solid; =
BACKGROUND: url(images/ui-bg_glass_95_fef1ec_1x400.png) #fef1ec repeat-x =
50% 50%; COLOR: #cd0a0a; BORDER-TOP: #cd0a0a 1px solid; BORDER-RIGHT: =
#cd0a0a 1px solid
}
.ui-widget-content .ui-state-error {
	BORDER-BOTTOM: #cd0a0a 1px solid; BORDER-LEFT: #cd0a0a 1px solid; =
BACKGROUND: url(images/ui-bg_glass_95_fef1ec_1x400.png) #fef1ec repeat-x =
50% 50%; COLOR: #cd0a0a; BORDER-TOP: #cd0a0a 1px solid; BORDER-RIGHT: =
#cd0a0a 1px solid
}
.ui-widget-header .ui-state-error {
	BORDER-BOTTOM: #cd0a0a 1px solid; BORDER-LEFT: #cd0a0a 1px solid; =
BACKGROUND: url(images/ui-bg_glass_95_fef1ec_1x400.png) #fef1ec repeat-x =
50% 50%; COLOR: #cd0a0a; BORDER-TOP: #cd0a0a 1px solid; BORDER-RIGHT: =
#cd0a0a 1px solid
}
.ui-state-error A {
	COLOR: #cd0a0a
}
.ui-widget-content .ui-state-error A {
	COLOR: #cd0a0a
}
.ui-widget-header .ui-state-error A {
	COLOR: #cd0a0a
}
.ui-state-error-text {
	COLOR: #cd0a0a
}
.ui-widget-content .ui-state-error-text {
	COLOR: #cd0a0a
}
.ui-widget-header .ui-state-error-text {
	COLOR: #cd0a0a
}
.ui-priority-primary {
	FONT-WEIGHT: bold
}
.ui-widget-content .ui-priority-primary {
	FONT-WEIGHT: bold
}
.ui-widget-header .ui-priority-primary {
	FONT-WEIGHT: bold
}
.ui-priority-secondary {
	FILTER: Alpha(Opacity=3D70); FONT-WEIGHT: normal; opacity: .7
}
.ui-widget-content .ui-priority-secondary {
	FILTER: Alpha(Opacity=3D70); FONT-WEIGHT: normal; opacity: .7
}
.ui-widget-header .ui-priority-secondary {
	FILTER: Alpha(Opacity=3D70); FONT-WEIGHT: normal; opacity: .7
}
.ui-state-disabled {
	BACKGROUND-IMAGE: none; FILTER: Alpha(Opacity=3D35); opacity: .35
}
.ui-widget-content .ui-state-disabled {
	BACKGROUND-IMAGE: none; FILTER: Alpha(Opacity=3D35); opacity: .35
}
.ui-widget-header .ui-state-disabled {
	BACKGROUND-IMAGE: none; FILTER: Alpha(Opacity=3D35); opacity: .35
}
.ui-icon {
	BACKGROUND-IMAGE: url(images/ui-icons_222222_256x240.png); WIDTH: 16px; =
HEIGHT: 16px
}
.ui-widget-content .ui-icon {
	BACKGROUND-IMAGE: url(images/ui-icons_222222_256x240.png)
}
.ui-widget-header .ui-icon {
	BACKGROUND-IMAGE: url(images/ui-icons_222222_256x240.png)
}
.ui-state-default .ui-icon {
	BACKGROUND-IMAGE: url(images/ui-icons_888888_256x240.png)
}
.ui-state-hover .ui-icon {
	BACKGROUND-IMAGE: url(images/ui-icons_454545_256x240.png)
}
.ui-state-focus .ui-icon {
	BACKGROUND-IMAGE: url(images/ui-icons_454545_256x240.png)
}
.ui-state-active .ui-icon {
	BACKGROUND-IMAGE: url(images/ui-icons_454545_256x240.png)
}
.ui-state-highlight .ui-icon {
	BACKGROUND-IMAGE: url(images/ui-icons_2e83ff_256x240.png)
}
.ui-state-error .ui-icon {
	BACKGROUND-IMAGE: url(images/ui-icons_cd0a0a_256x240.png)
}
.ui-state-error-text .ui-icon {
	BACKGROUND-IMAGE: url(images/ui-icons_cd0a0a_256x240.png)
}
.ui-icon-carat-1-n {
	BACKGROUND-POSITION: 0px 0px
}
.ui-icon-carat-1-ne {
	BACKGROUND-POSITION: -16px 0px
}
.ui-icon-carat-1-e {
	BACKGROUND-POSITION: -32px 0px
}
.ui-icon-carat-1-se {
	BACKGROUND-POSITION: -48px 0px
}
.ui-icon-carat-1-s {
	BACKGROUND-POSITION: -64px 0px
}
.ui-icon-carat-1-sw {
	BACKGROUND-POSITION: -80px 0px
}
.ui-icon-carat-1-w {
	BACKGROUND-POSITION: -96px 0px
}
.ui-icon-carat-1-nw {
	BACKGROUND-POSITION: -112px 0px
}
.ui-icon-carat-2-n-s {
	BACKGROUND-POSITION: -128px 0px
}
.ui-icon-carat-2-e-w {
	BACKGROUND-POSITION: -144px 0px
}
.ui-icon-triangle-1-n {
	BACKGROUND-POSITION: 0px -16px
}
.ui-icon-triangle-1-ne {
	BACKGROUND-POSITION: -16px -16px
}
.ui-icon-triangle-1-e {
	BACKGROUND-POSITION: -32px -16px
}
.ui-icon-triangle-1-se {
	BACKGROUND-POSITION: -48px -16px
}
.ui-icon-triangle-1-s {
	BACKGROUND-POSITION: -64px -16px
}
.ui-icon-triangle-1-sw {
	BACKGROUND-POSITION: -80px -16px
}
.ui-icon-triangle-1-w {
	BACKGROUND-POSITION: -96px -16px
}
.ui-icon-triangle-1-nw {
	BACKGROUND-POSITION: -112px -16px
}
.ui-icon-triangle-2-n-s {
	BACKGROUND-POSITION: -128px -16px
}
.ui-icon-triangle-2-e-w {
	BACKGROUND-POSITION: -144px -16px
}
.ui-icon-arrow-1-n {
	BACKGROUND-POSITION: 0px -32px
}
.ui-icon-arrow-1-ne {
	BACKGROUND-POSITION: -16px -32px
}
.ui-icon-arrow-1-e {
	BACKGROUND-POSITION: -32px -32px
}
.ui-icon-arrow-1-se {
	BACKGROUND-POSITION: -48px -32px
}
.ui-icon-arrow-1-s {
	BACKGROUND-POSITION: -64px -32px
}
.ui-icon-arrow-1-sw {
	BACKGROUND-POSITION: -80px -32px
}
.ui-icon-arrow-1-w {
	BACKGROUND-POSITION: -96px -32px
}
.ui-icon-arrow-1-nw {
	BACKGROUND-POSITION: -112px -32px
}
.ui-icon-arrow-2-n-s {
	BACKGROUND-POSITION: -128px -32px
}
.ui-icon-arrow-2-ne-sw {
	BACKGROUND-POSITION: -144px -32px
}
.ui-icon-arrow-2-e-w {
	BACKGROUND-POSITION: -160px -32px
}
.ui-icon-arrow-2-se-nw {
	BACKGROUND-POSITION: -176px -32px
}
.ui-icon-arrowstop-1-n {
	BACKGROUND-POSITION: -192px -32px
}
.ui-icon-arrowstop-1-e {
	BACKGROUND-POSITION: -208px -32px
}
.ui-icon-arrowstop-1-s {
	BACKGROUND-POSITION: -224px -32px
}
.ui-icon-arrowstop-1-w {
	BACKGROUND-POSITION: -240px -32px
}
.ui-icon-arrowthick-1-n {
	BACKGROUND-POSITION: 0px -48px
}
.ui-icon-arrowthick-1-ne {
	BACKGROUND-POSITION: -16px -48px
}
.ui-icon-arrowthick-1-e {
	BACKGROUND-POSITION: -32px -48px
}
.ui-icon-arrowthick-1-se {
	BACKGROUND-POSITION: -48px -48px
}
.ui-icon-arrowthick-1-s {
	BACKGROUND-POSITION: -64px -48px
}
.ui-icon-arrowthick-1-sw {
	BACKGROUND-POSITION: -80px -48px
}
.ui-icon-arrowthick-1-w {
	BACKGROUND-POSITION: -96px -48px
}
.ui-icon-arrowthick-1-nw {
	BACKGROUND-POSITION: -112px -48px
}
.ui-icon-arrowthick-2-n-s {
	BACKGROUND-POSITION: -128px -48px
}
.ui-icon-arrowthick-2-ne-sw {
	BACKGROUND-POSITION: -144px -48px
}
.ui-icon-arrowthick-2-e-w {
	BACKGROUND-POSITION: -160px -48px
}
.ui-icon-arrowthick-2-se-nw {
	BACKGROUND-POSITION: -176px -48px
}
.ui-icon-arrowthickstop-1-n {
	BACKGROUND-POSITION: -192px -48px
}
.ui-icon-arrowthickstop-1-e {
	BACKGROUND-POSITION: -208px -48px
}
.ui-icon-arrowthickstop-1-s {
	BACKGROUND-POSITION: -224px -48px
}
.ui-icon-arrowthickstop-1-w {
	BACKGROUND-POSITION: -240px -48px
}
.ui-icon-arrowreturnthick-1-w {
	BACKGROUND-POSITION: 0px -64px
}
.ui-icon-arrowreturnthick-1-n {
	BACKGROUND-POSITION: -16px -64px
}
.ui-icon-arrowreturnthick-1-e {
	BACKGROUND-POSITION: -32px -64px
}
.ui-icon-arrowreturnthick-1-s {
	BACKGROUND-POSITION: -48px -64px
}
.ui-icon-arrowreturn-1-w {
	BACKGROUND-POSITION: -64px -64px
}
.ui-icon-arrowreturn-1-n {
	BACKGROUND-POSITION: -80px -64px
}
.ui-icon-arrowreturn-1-e {
	BACKGROUND-POSITION: -96px -64px
}
.ui-icon-arrowreturn-1-s {
	BACKGROUND-POSITION: -112px -64px
}
.ui-icon-arrowrefresh-1-w {
	BACKGROUND-POSITION: -128px -64px
}
.ui-icon-arrowrefresh-1-n {
	BACKGROUND-POSITION: -144px -64px
}
.ui-icon-arrowrefresh-1-e {
	BACKGROUND-POSITION: -160px -64px
}
.ui-icon-arrowrefresh-1-s {
	BACKGROUND-POSITION: -176px -64px
}
.ui-icon-arrow-4 {
	BACKGROUND-POSITION: 0px -80px
}
.ui-icon-arrow-4-diag {
	BACKGROUND-POSITION: -16px -80px
}
.ui-icon-extlink {
	BACKGROUND-POSITION: -32px -80px
}
.ui-icon-newwin {
	BACKGROUND-POSITION: -48px -80px
}
.ui-icon-refresh {
	BACKGROUND-POSITION: -64px -80px
}
.ui-icon-shuffle {
	BACKGROUND-POSITION: -80px -80px
}
.ui-icon-transfer-e-w {
	BACKGROUND-POSITION: -96px -80px
}
.ui-icon-transferthick-e-w {
	BACKGROUND-POSITION: -112px -80px
}
.ui-icon-folder-collapsed {
	BACKGROUND-POSITION: 0px -96px
}
.ui-icon-folder-open {
	BACKGROUND-POSITION: -16px -96px
}
.ui-icon-document {
	BACKGROUND-POSITION: -32px -96px
}
.ui-icon-document-b {
	BACKGROUND-POSITION: -48px -96px
}
.ui-icon-note {
	BACKGROUND-POSITION: -64px -96px
}
.ui-icon-mail-closed {
	BACKGROUND-POSITION: -80px -96px
}
.ui-icon-mail-open {
	BACKGROUND-POSITION: -96px -96px
}
.ui-icon-suitcase {
	BACKGROUND-POSITION: -112px -96px
}
.ui-icon-comment {
	BACKGROUND-POSITION: -128px -96px
}
.ui-icon-person {
	BACKGROUND-POSITION: -144px -96px
}
.ui-icon-print {
	BACKGROUND-POSITION: -160px -96px
}
.ui-icon-trash {
	BACKGROUND-POSITION: -176px -96px
}
.ui-icon-locked {
	BACKGROUND-POSITION: -192px -96px
}
.ui-icon-unlocked {
	BACKGROUND-POSITION: -208px -96px
}
.ui-icon-bookmark {
	BACKGROUND-POSITION: -224px -96px
}
.ui-icon-tag {
	BACKGROUND-POSITION: -240px -96px
}
.ui-icon-home {
	BACKGROUND-POSITION: 0px -112px
}
.ui-icon-flag {
	BACKGROUND-POSITION: -16px -112px
}
.ui-icon-calendar {
	BACKGROUND-POSITION: -32px -112px
}
.ui-icon-cart {
	BACKGROUND-POSITION: -48px -112px
}
.ui-icon-pencil {
	BACKGROUND-POSITION: -64px -112px
}
.ui-icon-clock {
	BACKGROUND-POSITION: -80px -112px
}
.ui-icon-disk {
	BACKGROUND-POSITION: -96px -112px
}
.ui-icon-calculator {
	BACKGROUND-POSITION: -112px -112px
}
.ui-icon-zoomin {
	BACKGROUND-POSITION: -128px -112px
}
.ui-icon-zoomout {
	BACKGROUND-POSITION: -144px -112px
}
.ui-icon-search {
	BACKGROUND-POSITION: -160px -112px
}
.ui-icon-wrench {
	BACKGROUND-POSITION: -176px -112px
}
.ui-icon-gear {
	BACKGROUND-POSITION: -192px -112px
}
.ui-icon-heart {
	BACKGROUND-POSITION: -208px -112px
}
.ui-icon-star {
	BACKGROUND-POSITION: -224px -112px
}
.ui-icon-link {
	BACKGROUND-POSITION: -240px -112px
}
.ui-icon-cancel {
	BACKGROUND-POSITION: 0px -128px
}
.ui-icon-plus {
	BACKGROUND-POSITION: -16px -128px
}
.ui-icon-plusthick {
	BACKGROUND-POSITION: -32px -128px
}
.ui-icon-minus {
	BACKGROUND-POSITION: -48px -128px
}
.ui-icon-minusthick {
	BACKGROUND-POSITION: -64px -128px
}
.ui-icon-close {
	BACKGROUND-POSITION: -80px -128px
}
.ui-icon-closethick {
	BACKGROUND-POSITION: -96px -128px
}
.ui-icon-key {
	BACKGROUND-POSITION: -112px -128px
}
.ui-icon-lightbulb {
	BACKGROUND-POSITION: -128px -128px
}
.ui-icon-scissors {
	BACKGROUND-POSITION: -144px -128px
}
.ui-icon-clipboard {
	BACKGROUND-POSITION: -160px -128px
}
.ui-icon-copy {
	BACKGROUND-POSITION: -176px -128px
}
.ui-icon-contact {
	BACKGROUND-POSITION: -192px -128px
}
.ui-icon-image {
	BACKGROUND-POSITION: -208px -128px
}
.ui-icon-video {
	BACKGROUND-POSITION: -224px -128px
}
.ui-icon-script {
	BACKGROUND-POSITION: -240px -128px
}
.ui-icon-alert {
	BACKGROUND-POSITION: 0px -144px
}
.ui-icon-info {
	BACKGROUND-POSITION: -16px -144px
}
.ui-icon-notice {
	BACKGROUND-POSITION: -32px -144px
}
.ui-icon-help {
	BACKGROUND-POSITION: -48px -144px
}
.ui-icon-check {
	BACKGROUND-POSITION: -64px -144px
}
.ui-icon-bullet {
	BACKGROUND-POSITION: -80px -144px
}
.ui-icon-radio-off {
	BACKGROUND-POSITION: -96px -144px
}
.ui-icon-radio-on {
	BACKGROUND-POSITION: -112px -144px
}
.ui-icon-pin-w {
	BACKGROUND-POSITION: -128px -144px
}
.ui-icon-pin-s {
	BACKGROUND-POSITION: -144px -144px
}
.ui-icon-play {
	BACKGROUND-POSITION: 0px -160px
}
.ui-icon-pause {
	BACKGROUND-POSITION: -16px -160px
}
.ui-icon-seek-next {
	BACKGROUND-POSITION: -32px -160px
}
.ui-icon-seek-prev {
	BACKGROUND-POSITION: -48px -160px
}
.ui-icon-seek-end {
	BACKGROUND-POSITION: -64px -160px
}
.ui-icon-seek-start {
	BACKGROUND-POSITION: -80px -160px
}
.ui-icon-seek-first {
	BACKGROUND-POSITION: -80px -160px
}
.ui-icon-stop {
	BACKGROUND-POSITION: -96px -160px
}
.ui-icon-eject {
	BACKGROUND-POSITION: -112px -160px
}
.ui-icon-volume-off {
	BACKGROUND-POSITION: -128px -160px
}
.ui-icon-volume-on {
	BACKGROUND-POSITION: -144px -160px
}
.ui-icon-power {
	BACKGROUND-POSITION: 0px -176px
}
.ui-icon-signal-diag {
	BACKGROUND-POSITION: -16px -176px
}
.ui-icon-signal {
	BACKGROUND-POSITION: -32px -176px
}
.ui-icon-battery-0 {
	BACKGROUND-POSITION: -48px -176px
}
.ui-icon-battery-1 {
	BACKGROUND-POSITION: -64px -176px
}
.ui-icon-battery-2 {
	BACKGROUND-POSITION: -80px -176px
}
.ui-icon-battery-3 {
	BACKGROUND-POSITION: -96px -176px
}
.ui-icon-circle-plus {
	BACKGROUND-POSITION: 0px -192px
}
.ui-icon-circle-minus {
	BACKGROUND-POSITION: -16px -192px
}
.ui-icon-circle-close {
	BACKGROUND-POSITION: -32px -192px
}
.ui-icon-circle-triangle-e {
	BACKGROUND-POSITION: -48px -192px
}
.ui-icon-circle-triangle-s {
	BACKGROUND-POSITION: -64px -192px
}
.ui-icon-circle-triangle-w {
	BACKGROUND-POSITION: -80px -192px
}
.ui-icon-circle-triangle-n {
	BACKGROUND-POSITION: -96px -192px
}
.ui-icon-circle-arrow-e {
	BACKGROUND-POSITION: -112px -192px
}
.ui-icon-circle-arrow-s {
	BACKGROUND-POSITION: -128px -192px
}
.ui-icon-circle-arrow-w {
	BACKGROUND-POSITION: -144px -192px
}
.ui-icon-circle-arrow-n {
	BACKGROUND-POSITION: -160px -192px
}
.ui-icon-circle-zoomin {
	BACKGROUND-POSITION: -176px -192px
}
.ui-icon-circle-zoomout {
	BACKGROUND-POSITION: -192px -192px
}
.ui-icon-circle-check {
	BACKGROUND-POSITION: -208px -192px
}
.ui-icon-circlesmall-plus {
	BACKGROUND-POSITION: 0px -208px
}
.ui-icon-circlesmall-minus {
	BACKGROUND-POSITION: -16px -208px
}
.ui-icon-circlesmall-close {
	BACKGROUND-POSITION: -32px -208px
}
.ui-icon-squaresmall-plus {
	BACKGROUND-POSITION: -48px -208px
}
.ui-icon-squaresmall-minus {
	BACKGROUND-POSITION: -64px -208px
}
.ui-icon-squaresmall-close {
	BACKGROUND-POSITION: -80px -208px
}
.ui-icon-grip-dotted-vertical {
	BACKGROUND-POSITION: 0px -224px
}
.ui-icon-grip-dotted-horizontal {
	BACKGROUND-POSITION: -16px -224px
}
.ui-icon-grip-solid-vertical {
	BACKGROUND-POSITION: -32px -224px
}
.ui-icon-grip-solid-horizontal {
	BACKGROUND-POSITION: -48px -224px
}
.ui-icon-gripsmall-diagonal-se {
	BACKGROUND-POSITION: -64px -224px
}
.ui-icon-grip-diagonal-se {
	BACKGROUND-POSITION: -80px -224px
}
.ui-corner-tl {
	-moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; =
border-top-left-radius: 4px
}
.ui-corner-tr {
	-moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; =
border-top-right-radius: 4px
}
.ui-corner-bl {
	-moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: =
4px; border-bottom-left-radius: 4px
}
.ui-corner-br {
	-moz-border-radius-bottomright: 4px; =
-webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px
}
.ui-corner-top {
	-moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; =
border-top-left-radius: 4px; -moz-border-radius-topright: 4px; =
-webkit-border-top-right-radius: 4px; border-top-right-radius: 4px
}
.ui-corner-bottom {
	-moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: =
4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: =
4px; -webkit-border-bottom-right-radius: 4px; =
border-bottom-right-radius: 4px
}
.ui-corner-right {
	-moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; =
border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; =
-webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px
}
.ui-corner-left {
	-moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; =
border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; =
-webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px
}
.ui-corner-all {
	-moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px
}
.ui-widget-overlay {
	FILTER: Alpha(Opacity=3D30)/*{opacityOverlay}*/; BACKGROUND: =
url(images/ui-bg_flat_0_aaaaaa_40x100.png) #aaaaaa repeat-x 50% 50%; =
opacity: .3
}
.ui-widget-shadow {
	FILTER: Alpha(Opacity=3D30)/*{opacityShadow}*/; PADDING-BOTTOM: 8px; =
MARGIN: -8px 0px 0px -8px; PADDING-LEFT: 8px; PADDING-RIGHT: 8px; =
BACKGROUND: url(images/ui-bg_flat_0_aaaaaa_40x100.png) #aaaaaa repeat-x =
50% 50%; PADDING-TOP: 8px; opacity: .3; -moz-border-radius: 8px; =
-webkit-border-radius: 8px; border-radius: 8px
}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Location: https://www.craftonhills.edu/ProgramReview/Public/themes/base/jquery.ui.all.css

@import url( jquery.ui.base.css );
@import url( jquery.ui.theme.css );

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Location: https://www.craftonhills.edu/ProgramReview/Public/css/ui.spinner.css

.ui-spinner {
	POSITION: relative
}
.ui-spinner-buttons {
	POSITION: absolute
}
.ui-spinner-button {
	OVERFLOW: hidden
}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Public/css/jquery.jgrowl.css

DIV.jGrowl {
	Z-INDEX: 9999; PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; PADDING-RIGHT: =
10px; COLOR: #fff; FONT-SIZE: 12px; PADDING-TOP: 10px
}
DIV.ie6 {
	POSITION: absolute
}
DIV.top-right.ie6 {
	BOTTOM: auto; RIGHT: auto
}
DIV.top-left.ie6 {
=09
}
DIV.bottom-right.ie6 {
=09
}
DIV.bottom-left.ie6 {
=09
}
DIV.center.ie6 {
	WIDTH: 100%
}
BODY > DIV.jGrowl {
	POSITION: fixed
}
BODY > DIV.top-left.jGrowl {
	TOP: 0px; LEFT: 0px
}
BODY > DIV.top-right.jGrowl {
	TOP: 0px; RIGHT: 0px
}
BODY > DIV.bottom-left.jGrowl {
	BOTTOM: 0px; LEFT: 0px
}
BODY > DIV.bottom-right.jGrowl {
	BOTTOM: 0px; RIGHT: 0px
}
BODY > DIV.center.jGrowl {
	WIDTH: 50%; TOP: 0px; LEFT: 25%
}
DIV.center DIV.jGrowl-notification {
	MARGIN-LEFT: auto; MARGIN-RIGHT: auto
}
DIV.center DIV.jGrowl-closer {
	MARGIN-LEFT: auto; MARGIN-RIGHT: auto
}
DIV.jGrowl DIV.jGrowl-notification {
	TEXT-ALIGN: left; FILTER: =
progid:DXImageTransform.Microsoft.Alpha(Opacity=3D85); PADDING-BOTTOM: =
10px; BACKGROUND-COLOR: #000; MARGIN-TOP: 5px; PADDING-LEFT: 10px; =
WIDTH: 235px; PADDING-RIGHT: 10px; ZOOM: 1; DISPLAY: none; FONT-FAMILY: =
Tahoma, Arial, Helvetica, sans-serif; MARGIN-BOTTOM: 5px; FONT-SIZE: =
1em; PADDING-TOP: 10px; opacity: .85; -moz-border-radius: 5px; =
-webkit-border-radius: 5px
}
DIV.jGrowl DIV.jGrowl-closer {
	TEXT-ALIGN: left; FILTER: =
progid:DXImageTransform.Microsoft.Alpha(Opacity=3D85); PADDING-BOTTOM: =
10px; BACKGROUND-COLOR: #000; MARGIN-TOP: 5px; PADDING-LEFT: 10px; =
WIDTH: 235px; PADDING-RIGHT: 10px; ZOOM: 1; DISPLAY: none; FONT-FAMILY: =
Tahoma, Arial, Helvetica, sans-serif; MARGIN-BOTTOM: 5px; FONT-SIZE: =
1em; PADDING-TOP: 10px; opacity: .85; -moz-border-radius: 5px; =
-webkit-border-radius: 5px
}
DIV.jGrowl DIV.jGrowl-notification {
	MIN-HEIGHT: 40px
}
DIV.jGrowl DIV.jGrowl-notification DIV.header {
	FONT-SIZE: 0.85em; FONT-WEIGHT: bold
}
DIV.jGrowl DIV.jGrowl-notification DIV.close {
	Z-INDEX: 99; FLOAT: right; FONT-SIZE: 1em; CURSOR: pointer; =
FONT-WEIGHT: bold
}
DIV.jGrowl DIV.jGrowl-closer {
	TEXT-ALIGN: center; PADDING-BOTTOM: 4px; FONT-SIZE: 0.9em; CURSOR: =
pointer; FONT-WEIGHT: bold; PADDING-TOP: 4px
}

@media Print   =20
{
DIV.jGrowl {
	DISPLAY: none
}

}

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Public/javascript/jquery-1.6.1.js

/*!=0A=
 * jQuery JavaScript Library v1.6.1=0A=
 * http://jquery.com/=0A=
 *=0A=
 * Copyright 2011, John Resig=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * Includes Sizzle.js=0A=
 * http://sizzlejs.com/=0A=
 * Copyright 2011, The Dojo Foundation=0A=
 * Released under the MIT, BSD, and GPL Licenses.=0A=
 *=0A=
 * Date: Thu May 12 15:04:36 2011 -0400=0A=
 */=0A=
(function( window, undefined ) {=0A=
=0A=
// Use the correct document accordingly with window argument (sandbox)=0A=
var document =3D window.document,=0A=
	navigator =3D window.navigator,=0A=
	location =3D window.location;=0A=
var jQuery =3D (function() {=0A=
=0A=
// Define a local copy of jQuery=0A=
var jQuery =3D function( selector, context ) {=0A=
		// The jQuery object is actually just the init constructor 'enhanced'=0A=
		return new jQuery.fn.init( selector, context, rootjQuery );=0A=
	},=0A=
=0A=
	// Map over jQuery in case of overwrite=0A=
	_jQuery =3D window.jQuery,=0A=
=0A=
	// Map over the $ in case of overwrite=0A=
	_$ =3D window.$,=0A=
=0A=
	// A central reference to the root jQuery(document)=0A=
	rootjQuery,=0A=
=0A=
	// A simple way to check for HTML strings or ID strings=0A=
	// (both of which we optimize for)=0A=
	quickExpr =3D /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,=0A=
=0A=
	// Check if a string has a non-whitespace character in it=0A=
	rnotwhite =3D /\S/,=0A=
=0A=
	// Used for trimming whitespace=0A=
	trimLeft =3D /^\s+/,=0A=
	trimRight =3D /\s+$/,=0A=
=0A=
	// Check for digits=0A=
	rdigit =3D /\d/,=0A=
=0A=
	// Match a standalone tag=0A=
	rsingleTag =3D /^<(\w+)\s*\/?>(?:<\/\1>)?$/,=0A=
=0A=
	// JSON RegExp=0A=
	rvalidchars =3D /^[\],:{}\s]*$/,=0A=
	rvalidescape =3D /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,=0A=
	rvalidtokens =3D =
/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,=0A=
	rvalidbraces =3D /(?:^|:|,)(?:\s*\[)+/g,=0A=
=0A=
	// Useragent RegExp=0A=
	rwebkit =3D /(webkit)[ \/]([\w.]+)/,=0A=
	ropera =3D /(opera)(?:.*version)?[ \/]([\w.]+)/,=0A=
	rmsie =3D /(msie) ([\w.]+)/,=0A=
	rmozilla =3D /(mozilla)(?:.*? rv:([\w.]+))?/,=0A=
=0A=
	// Keep a UserAgent string for use with jQuery.browser=0A=
	userAgent =3D navigator.userAgent,=0A=
=0A=
	// For matching the engine and version of the browser=0A=
	browserMatch,=0A=
=0A=
	// The deferred used on DOM ready=0A=
	readyList,=0A=
=0A=
	// The ready event handler=0A=
	DOMContentLoaded,=0A=
=0A=
	// Save a reference to some core methods=0A=
	toString =3D Object.prototype.toString,=0A=
	hasOwn =3D Object.prototype.hasOwnProperty,=0A=
	push =3D Array.prototype.push,=0A=
	slice =3D Array.prototype.slice,=0A=
	trim =3D String.prototype.trim,=0A=
	indexOf =3D Array.prototype.indexOf,=0A=
=0A=
	// [[Class]] -> type pairs=0A=
	class2type =3D {};=0A=
=0A=
jQuery.fn =3D jQuery.prototype =3D {=0A=
	constructor: jQuery,=0A=
	init: function( selector, context, rootjQuery ) {=0A=
		var match, elem, ret, doc;=0A=
=0A=
		// Handle $(""), $(null), or $(undefined)=0A=
		if ( !selector ) {=0A=
			return this;=0A=
		}=0A=
=0A=
		// Handle $(DOMElement)=0A=
		if ( selector.nodeType ) {=0A=
			this.context =3D this[0] =3D selector;=0A=
			this.length =3D 1;=0A=
			return this;=0A=
		}=0A=
=0A=
		// The body element only exists once, optimize finding it=0A=
		if ( selector =3D=3D=3D "body" && !context && document.body ) {=0A=
			this.context =3D document;=0A=
			this[0] =3D document.body;=0A=
			this.selector =3D selector;=0A=
			this.length =3D 1;=0A=
			return this;=0A=
		}=0A=
=0A=
		// Handle HTML strings=0A=
		if ( typeof selector =3D=3D=3D "string" ) {=0A=
			// Are we dealing with HTML string or an ID?=0A=
			if ( selector.charAt(0) =3D=3D=3D "<" && selector.charAt( =
selector.length - 1 ) =3D=3D=3D ">" && selector.length >=3D 3 ) {=0A=
				// Assume that strings that start and end with <> are HTML and skip =
the regex check=0A=
				match =3D [ null, selector, null ];=0A=
=0A=
			} else {=0A=
				match =3D quickExpr.exec( selector );=0A=
			}=0A=
=0A=
			// Verify a match, and that no context was specified for #id=0A=
			if ( match && (match[1] || !context) ) {=0A=
=0A=
				// HANDLE: $(html) -> $(array)=0A=
				if ( match[1] ) {=0A=
					context =3D context instanceof jQuery ? context[0] : context;=0A=
					doc =3D (context ? context.ownerDocument || context : document);=0A=
=0A=
					// If a single string is passed in and it's a single tag=0A=
					// just do a createElement and skip the rest=0A=
					ret =3D rsingleTag.exec( selector );=0A=
=0A=
					if ( ret ) {=0A=
						if ( jQuery.isPlainObject( context ) ) {=0A=
							selector =3D [ document.createElement( ret[1] ) ];=0A=
							jQuery.fn.attr.call( selector, context, true );=0A=
=0A=
						} else {=0A=
							selector =3D [ doc.createElement( ret[1] ) ];=0A=
						}=0A=
=0A=
					} else {=0A=
						ret =3D jQuery.buildFragment( [ match[1] ], [ doc ] );=0A=
						selector =3D (ret.cacheable ? jQuery.clone(ret.fragment) : =
ret.fragment).childNodes;=0A=
					}=0A=
=0A=
					return jQuery.merge( this, selector );=0A=
=0A=
				// HANDLE: $("#id")=0A=
				} else {=0A=
					elem =3D document.getElementById( match[2] );=0A=
=0A=
					// Check parentNode to catch when Blackberry 4.6 returns=0A=
					// nodes that are no longer in the document #6963=0A=
					if ( elem && elem.parentNode ) {=0A=
						// Handle the case where IE and Opera return items=0A=
						// by name instead of ID=0A=
						if ( elem.id !=3D=3D match[2] ) {=0A=
							return rootjQuery.find( selector );=0A=
						}=0A=
=0A=
						// Otherwise, we inject the element directly into the jQuery object=0A=
						this.length =3D 1;=0A=
						this[0] =3D elem;=0A=
					}=0A=
=0A=
					this.context =3D document;=0A=
					this.selector =3D selector;=0A=
					return this;=0A=
				}=0A=
=0A=
			// HANDLE: $(expr, $(...))=0A=
			} else if ( !context || context.jquery ) {=0A=
				return (context || rootjQuery).find( selector );=0A=
=0A=
			// HANDLE: $(expr, context)=0A=
			// (which is just equivalent to: $(context).find(expr)=0A=
			} else {=0A=
				return this.constructor( context ).find( selector );=0A=
			}=0A=
=0A=
		// HANDLE: $(function)=0A=
		// Shortcut for document ready=0A=
		} else if ( jQuery.isFunction( selector ) ) {=0A=
			return rootjQuery.ready( selector );=0A=
		}=0A=
=0A=
		if (selector.selector !=3D=3D undefined) {=0A=
			this.selector =3D selector.selector;=0A=
			this.context =3D selector.context;=0A=
		}=0A=
=0A=
		return jQuery.makeArray( selector, this );=0A=
	},=0A=
=0A=
	// Start with an empty selector=0A=
	selector: "",=0A=
=0A=
	// The current version of jQuery being used=0A=
	jquery: "1.6.1",=0A=
=0A=
	// The default length of a jQuery object is 0=0A=
	length: 0,=0A=
=0A=
	// The number of elements contained in the matched element set=0A=
	size: function() {=0A=
		return this.length;=0A=
	},=0A=
=0A=
	toArray: function() {=0A=
		return slice.call( this, 0 );=0A=
	},=0A=
=0A=
	// Get the Nth element in the matched element set OR=0A=
	// Get the whole matched element set as a clean array=0A=
	get: function( num ) {=0A=
		return num =3D=3D null ?=0A=
=0A=
			// Return a 'clean' array=0A=
			this.toArray() :=0A=
=0A=
			// Return just the object=0A=
			( num < 0 ? this[ this.length + num ] : this[ num ] );=0A=
	},=0A=
=0A=
	// Take an array of elements and push it onto the stack=0A=
	// (returning the new matched element set)=0A=
	pushStack: function( elems, name, selector ) {=0A=
		// Build a new jQuery matched element set=0A=
		var ret =3D this.constructor();=0A=
=0A=
		if ( jQuery.isArray( elems ) ) {=0A=
			push.apply( ret, elems );=0A=
=0A=
		} else {=0A=
			jQuery.merge( ret, elems );=0A=
		}=0A=
=0A=
		// Add the old object onto the stack (as a reference)=0A=
		ret.prevObject =3D this;=0A=
=0A=
		ret.context =3D this.context;=0A=
=0A=
		if ( name =3D=3D=3D "find" ) {=0A=
			ret.selector =3D this.selector + (this.selector ? " " : "") + =
selector;=0A=
		} else if ( name ) {=0A=
			ret.selector =3D this.selector + "." + name + "(" + selector + ")";=0A=
		}=0A=
=0A=
		// Return the newly-formed element set=0A=
		return ret;=0A=
	},=0A=
=0A=
	// Execute a callback for every element in the matched set.=0A=
	// (You can seed the arguments with an array of args, but this is=0A=
	// only used internally.)=0A=
	each: function( callback, args ) {=0A=
		return jQuery.each( this, callback, args );=0A=
	},=0A=
=0A=
	ready: function( fn ) {=0A=
		// Attach the listeners=0A=
		jQuery.bindReady();=0A=
=0A=
		// Add the callback=0A=
		readyList.done( fn );=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	eq: function( i ) {=0A=
		return i =3D=3D=3D -1 ?=0A=
			this.slice( i ) :=0A=
			this.slice( i, +i + 1 );=0A=
	},=0A=
=0A=
	first: function() {=0A=
		return this.eq( 0 );=0A=
	},=0A=
=0A=
	last: function() {=0A=
		return this.eq( -1 );=0A=
	},=0A=
=0A=
	slice: function() {=0A=
		return this.pushStack( slice.apply( this, arguments ),=0A=
			"slice", slice.call(arguments).join(",") );=0A=
	},=0A=
=0A=
	map: function( callback ) {=0A=
		return this.pushStack( jQuery.map(this, function( elem, i ) {=0A=
			return callback.call( elem, i, elem );=0A=
		}));=0A=
	},=0A=
=0A=
	end: function() {=0A=
		return this.prevObject || this.constructor(null);=0A=
	},=0A=
=0A=
	// For internal use only.=0A=
	// Behaves like an Array's method, not like a jQuery method.=0A=
	push: push,=0A=
	sort: [].sort,=0A=
	splice: [].splice=0A=
};=0A=
=0A=
// Give the init function the jQuery prototype for later instantiation=0A=
jQuery.fn.init.prototype =3D jQuery.fn;=0A=
=0A=
jQuery.extend =3D jQuery.fn.extend =3D function() {=0A=
	var options, name, src, copy, copyIsArray, clone,=0A=
		target =3D arguments[0] || {},=0A=
		i =3D 1,=0A=
		length =3D arguments.length,=0A=
		deep =3D false;=0A=
=0A=
	// Handle a deep copy situation=0A=
	if ( typeof target =3D=3D=3D "boolean" ) {=0A=
		deep =3D target;=0A=
		target =3D arguments[1] || {};=0A=
		// skip the boolean and the target=0A=
		i =3D 2;=0A=
	}=0A=
=0A=
	// Handle case when target is a string or something (possible in deep =
copy)=0A=
	if ( typeof target !=3D=3D "object" && !jQuery.isFunction(target) ) {=0A=
		target =3D {};=0A=
	}=0A=
=0A=
	// extend jQuery itself if only one argument is passed=0A=
	if ( length =3D=3D=3D i ) {=0A=
		target =3D this;=0A=
		--i;=0A=
	}=0A=
=0A=
	for ( ; i < length; i++ ) {=0A=
		// Only deal with non-null/undefined values=0A=
		if ( (options =3D arguments[ i ]) !=3D null ) {=0A=
			// Extend the base object=0A=
			for ( name in options ) {=0A=
				src =3D target[ name ];=0A=
				copy =3D options[ name ];=0A=
=0A=
				// Prevent never-ending loop=0A=
				if ( target =3D=3D=3D copy ) {=0A=
					continue;=0A=
				}=0A=
=0A=
				// Recurse if we're merging plain objects or arrays=0A=
				if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray =
=3D jQuery.isArray(copy)) ) ) {=0A=
					if ( copyIsArray ) {=0A=
						copyIsArray =3D false;=0A=
						clone =3D src && jQuery.isArray(src) ? src : [];=0A=
=0A=
					} else {=0A=
						clone =3D src && jQuery.isPlainObject(src) ? src : {};=0A=
					}=0A=
=0A=
					// Never move original objects, clone them=0A=
					target[ name ] =3D jQuery.extend( deep, clone, copy );=0A=
=0A=
				// Don't bring in undefined values=0A=
				} else if ( copy !=3D=3D undefined ) {=0A=
					target[ name ] =3D copy;=0A=
				}=0A=
			}=0A=
		}=0A=
	}=0A=
=0A=
	// Return the modified object=0A=
	return target;=0A=
};=0A=
=0A=
jQuery.extend({=0A=
	noConflict: function( deep ) {=0A=
		if ( window.$ =3D=3D=3D jQuery ) {=0A=
			window.$ =3D _$;=0A=
		}=0A=
=0A=
		if ( deep && window.jQuery =3D=3D=3D jQuery ) {=0A=
			window.jQuery =3D _jQuery;=0A=
		}=0A=
=0A=
		return jQuery;=0A=
	},=0A=
=0A=
	// Is the DOM ready to be used? Set to true once it occurs.=0A=
	isReady: false,=0A=
=0A=
	// A counter to track how many items to wait for before=0A=
	// the ready event fires. See #6781=0A=
	readyWait: 1,=0A=
=0A=
	// Hold (or release) the ready event=0A=
	holdReady: function( hold ) {=0A=
		if ( hold ) {=0A=
			jQuery.readyWait++;=0A=
		} else {=0A=
			jQuery.ready( true );=0A=
		}=0A=
	},=0A=
=0A=
	// Handle when the DOM is ready=0A=
	ready: function( wait ) {=0A=
		// Either a released hold or an DOMready/load event and not yet ready=0A=
		if ( (wait =3D=3D=3D true && !--jQuery.readyWait) || (wait !=3D=3D =
true && !jQuery.isReady) ) {=0A=
			// Make sure body exists, at least, in case IE gets a little =
overzealous (ticket #5443).=0A=
			if ( !document.body ) {=0A=
				return setTimeout( jQuery.ready, 1 );=0A=
			}=0A=
=0A=
			// Remember that the DOM is ready=0A=
			jQuery.isReady =3D true;=0A=
=0A=
			// If a normal DOM Ready event fired, decrement, and wait if need be=0A=
			if ( wait !=3D=3D true && --jQuery.readyWait > 0 ) {=0A=
				return;=0A=
			}=0A=
=0A=
			// If there are functions bound, to execute=0A=
			readyList.resolveWith( document, [ jQuery ] );=0A=
=0A=
			// Trigger any bound ready events=0A=
			if ( jQuery.fn.trigger ) {=0A=
				jQuery( document ).trigger( "ready" ).unbind( "ready" );=0A=
			}=0A=
		}=0A=
	},=0A=
=0A=
	bindReady: function() {=0A=
		if ( readyList ) {=0A=
			return;=0A=
		}=0A=
=0A=
		readyList =3D jQuery._Deferred();=0A=
=0A=
		// Catch cases where $(document).ready() is called after the=0A=
		// browser event has already occurred.=0A=
		if ( document.readyState =3D=3D=3D "complete" ) {=0A=
			// Handle it asynchronously to allow scripts the opportunity to delay =
ready=0A=
			return setTimeout( jQuery.ready, 1 );=0A=
		}=0A=
=0A=
		// Mozilla, Opera and webkit nightlies currently support this event=0A=
		if ( document.addEventListener ) {=0A=
			// Use the handy event callback=0A=
			document.addEventListener( "DOMContentLoaded", DOMContentLoaded, =
false );=0A=
=0A=
			// A fallback to window.onload, that will always work=0A=
			window.addEventListener( "load", jQuery.ready, false );=0A=
=0A=
		// If IE event model is used=0A=
		} else if ( document.attachEvent ) {=0A=
			// ensure firing before onload,=0A=
			// maybe late but safe also for iframes=0A=
			document.attachEvent( "onreadystatechange", DOMContentLoaded );=0A=
=0A=
			// A fallback to window.onload, that will always work=0A=
			window.attachEvent( "onload", jQuery.ready );=0A=
=0A=
			// If IE and not a frame=0A=
			// continually check to see if the document is ready=0A=
			var toplevel =3D false;=0A=
=0A=
			try {=0A=
				toplevel =3D window.frameElement =3D=3D null;=0A=
			} catch(e) {}=0A=
=0A=
			if ( document.documentElement.doScroll && toplevel ) {=0A=
				doScrollCheck();=0A=
			}=0A=
		}=0A=
	},=0A=
=0A=
	// See test/unit/core.js for details concerning isFunction.=0A=
	// Since version 1.3, DOM methods and functions like alert=0A=
	// aren't supported. They return false on IE (#2968).=0A=
	isFunction: function( obj ) {=0A=
		return jQuery.type(obj) =3D=3D=3D "function";=0A=
	},=0A=
=0A=
	isArray: Array.isArray || function( obj ) {=0A=
		return jQuery.type(obj) =3D=3D=3D "array";=0A=
	},=0A=
=0A=
	// A crude way of determining if an object is a window=0A=
	isWindow: function( obj ) {=0A=
		return obj && typeof obj =3D=3D=3D "object" && "setInterval" in obj;=0A=
	},=0A=
=0A=
	isNaN: function( obj ) {=0A=
		return obj =3D=3D null || !rdigit.test( obj ) || isNaN( obj );=0A=
	},=0A=
=0A=
	type: function( obj ) {=0A=
		return obj =3D=3D null ?=0A=
			String( obj ) :=0A=
			class2type[ toString.call(obj) ] || "object";=0A=
	},=0A=
=0A=
	isPlainObject: function( obj ) {=0A=
		// Must be an Object.=0A=
		// Because of IE, we also have to check the presence of the =
constructor property.=0A=
		// Make sure that DOM nodes and window objects don't pass through, as =
well=0A=
		if ( !obj || jQuery.type(obj) !=3D=3D "object" || obj.nodeType || =
jQuery.isWindow( obj ) ) {=0A=
			return false;=0A=
		}=0A=
=0A=
		// Not own constructor property must be Object=0A=
		if ( obj.constructor &&=0A=
			!hasOwn.call(obj, "constructor") &&=0A=
			!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {=0A=
			return false;=0A=
		}=0A=
=0A=
		// Own properties are enumerated firstly, so to speed up,=0A=
		// if last one is own, then all properties are own.=0A=
=0A=
		var key;=0A=
		for ( key in obj ) {}=0A=
=0A=
		return key =3D=3D=3D undefined || hasOwn.call( obj, key );=0A=
	},=0A=
=0A=
	isEmptyObject: function( obj ) {=0A=
		for ( var name in obj ) {=0A=
			return false;=0A=
		}=0A=
		return true;=0A=
	},=0A=
=0A=
	error: function( msg ) {=0A=
		throw msg;=0A=
	},=0A=
=0A=
	parseJSON: function( data ) {=0A=
		if ( typeof data !=3D=3D "string" || !data ) {=0A=
			return null;=0A=
		}=0A=
=0A=
		// Make sure leading/trailing whitespace is removed (IE can't handle =
it)=0A=
		data =3D jQuery.trim( data );=0A=
=0A=
		// Attempt to parse using the native JSON parser first=0A=
		if ( window.JSON && window.JSON.parse ) {=0A=
			return window.JSON.parse( data );=0A=
		}=0A=
=0A=
		// Make sure the incoming data is actual JSON=0A=
		// Logic borrowed from http://json.org/json2.js=0A=
		if ( rvalidchars.test( data.replace( rvalidescape, "@" )=0A=
			.replace( rvalidtokens, "]" )=0A=
			.replace( rvalidbraces, "")) ) {=0A=
=0A=
			return (new Function( "return " + data ))();=0A=
=0A=
		}=0A=
		jQuery.error( "Invalid JSON: " + data );=0A=
	},=0A=
=0A=
	// Cross-browser xml parsing=0A=
	// (xml & tmp used internally)=0A=
	parseXML: function( data , xml , tmp ) {=0A=
=0A=
		if ( window.DOMParser ) { // Standard=0A=
			tmp =3D new DOMParser();=0A=
			xml =3D tmp.parseFromString( data , "text/xml" );=0A=
		} else { // IE=0A=
			xml =3D new ActiveXObject( "Microsoft.XMLDOM" );=0A=
			xml.async =3D "false";=0A=
			xml.loadXML( data );=0A=
		}=0A=
=0A=
		tmp =3D xml.documentElement;=0A=
=0A=
		if ( ! tmp || ! tmp.nodeName || tmp.nodeName =3D=3D=3D "parsererror" ) =
{=0A=
			jQuery.error( "Invalid XML: " + data );=0A=
		}=0A=
=0A=
		return xml;=0A=
	},=0A=
=0A=
	noop: function() {},=0A=
=0A=
	// Evaluates a script in a global context=0A=
	// Workarounds based on findings by Jim Driscoll=0A=
	// =
http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-=
global-context=0A=
	globalEval: function( data ) {=0A=
		if ( data && rnotwhite.test( data ) ) {=0A=
			// We use execScript on Internet Explorer=0A=
			// We use an anonymous function so that context is window=0A=
			// rather than jQuery in Firefox=0A=
			( window.execScript || function( data ) {=0A=
				window[ "eval" ].call( window, data );=0A=
			} )( data );=0A=
		}=0A=
	},=0A=
=0A=
	nodeName: function( elem, name ) {=0A=
		return elem.nodeName && elem.nodeName.toUpperCase() =3D=3D=3D =
name.toUpperCase();=0A=
	},=0A=
=0A=
	// args is for internal usage only=0A=
	each: function( object, callback, args ) {=0A=
		var name, i =3D 0,=0A=
			length =3D object.length,=0A=
			isObj =3D length =3D=3D=3D undefined || jQuery.isFunction( object );=0A=
=0A=
		if ( args ) {=0A=
			if ( isObj ) {=0A=
				for ( name in object ) {=0A=
					if ( callback.apply( object[ name ], args ) =3D=3D=3D false ) {=0A=
						break;=0A=
					}=0A=
				}=0A=
			} else {=0A=
				for ( ; i < length; ) {=0A=
					if ( callback.apply( object[ i++ ], args ) =3D=3D=3D false ) {=0A=
						break;=0A=
					}=0A=
				}=0A=
			}=0A=
=0A=
		// A special, fast, case for the most common use of each=0A=
		} else {=0A=
			if ( isObj ) {=0A=
				for ( name in object ) {=0A=
					if ( callback.call( object[ name ], name, object[ name ] ) =
=3D=3D=3D false ) {=0A=
						break;=0A=
					}=0A=
				}=0A=
			} else {=0A=
				for ( ; i < length; ) {=0A=
					if ( callback.call( object[ i ], i, object[ i++ ] ) =3D=3D=3D false =
) {=0A=
						break;=0A=
					}=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		return object;=0A=
	},=0A=
=0A=
	// Use native String.trim function wherever possible=0A=
	trim: trim ?=0A=
		function( text ) {=0A=
			return text =3D=3D null ?=0A=
				"" :=0A=
				trim.call( text );=0A=
		} :=0A=
=0A=
		// Otherwise use our own trimming functionality=0A=
		function( text ) {=0A=
			return text =3D=3D null ?=0A=
				"" :=0A=
				text.toString().replace( trimLeft, "" ).replace( trimRight, "" );=0A=
		},=0A=
=0A=
	// results is for internal usage only=0A=
	makeArray: function( array, results ) {=0A=
		var ret =3D results || [];=0A=
=0A=
		if ( array !=3D null ) {=0A=
			// The window, strings (and functions) also have 'length'=0A=
			// The extra typeof function check is to prevent crashes=0A=
			// in Safari 2 (See: #3039)=0A=
			// Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930=0A=
			var type =3D jQuery.type( array );=0A=
=0A=
			if ( array.length =3D=3D null || type =3D=3D=3D "string" || type =
=3D=3D=3D "function" || type =3D=3D=3D "regexp" || jQuery.isWindow( =
array ) ) {=0A=
				push.call( ret, array );=0A=
			} else {=0A=
				jQuery.merge( ret, array );=0A=
			}=0A=
		}=0A=
=0A=
		return ret;=0A=
	},=0A=
=0A=
	inArray: function( elem, array ) {=0A=
=0A=
		if ( indexOf ) {=0A=
			return indexOf.call( array, elem );=0A=
		}=0A=
=0A=
		for ( var i =3D 0, length =3D array.length; i < length; i++ ) {=0A=
			if ( array[ i ] =3D=3D=3D elem ) {=0A=
				return i;=0A=
			}=0A=
		}=0A=
=0A=
		return -1;=0A=
	},=0A=
=0A=
	merge: function( first, second ) {=0A=
		var i =3D first.length,=0A=
			j =3D 0;=0A=
=0A=
		if ( typeof second.length =3D=3D=3D "number" ) {=0A=
			for ( var l =3D second.length; j < l; j++ ) {=0A=
				first[ i++ ] =3D second[ j ];=0A=
			}=0A=
=0A=
		} else {=0A=
			while ( second[j] !=3D=3D undefined ) {=0A=
				first[ i++ ] =3D second[ j++ ];=0A=
			}=0A=
		}=0A=
=0A=
		first.length =3D i;=0A=
=0A=
		return first;=0A=
	},=0A=
=0A=
	grep: function( elems, callback, inv ) {=0A=
		var ret =3D [], retVal;=0A=
		inv =3D !!inv;=0A=
=0A=
		// Go through the array, only saving the items=0A=
		// that pass the validator function=0A=
		for ( var i =3D 0, length =3D elems.length; i < length; i++ ) {=0A=
			retVal =3D !!callback( elems[ i ], i );=0A=
			if ( inv !=3D=3D retVal ) {=0A=
				ret.push( elems[ i ] );=0A=
			}=0A=
		}=0A=
=0A=
		return ret;=0A=
	},=0A=
=0A=
	// arg is for internal usage only=0A=
	map: function( elems, callback, arg ) {=0A=
		var value, key, ret =3D [],=0A=
			i =3D 0,=0A=
			length =3D elems.length,=0A=
			// jquery objects are treated as arrays=0A=
			isArray =3D elems instanceof jQuery || length !=3D=3D undefined && =
typeof length =3D=3D=3D "number" && ( ( length > 0 && elems[ 0 ] && =
elems[ length -1 ] ) || length =3D=3D=3D 0 || jQuery.isArray( elems ) ) ;=0A=
=0A=
		// Go through the array, translating each of the items to their=0A=
		if ( isArray ) {=0A=
			for ( ; i < length; i++ ) {=0A=
				value =3D callback( elems[ i ], i, arg );=0A=
=0A=
				if ( value !=3D null ) {=0A=
					ret[ ret.length ] =3D value;=0A=
				}=0A=
			}=0A=
=0A=
		// Go through every key on the object,=0A=
		} else {=0A=
			for ( key in elems ) {=0A=
				value =3D callback( elems[ key ], key, arg );=0A=
=0A=
				if ( value !=3D null ) {=0A=
					ret[ ret.length ] =3D value;=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		// Flatten any nested arrays=0A=
		return ret.concat.apply( [], ret );=0A=
	},=0A=
=0A=
	// A global GUID counter for objects=0A=
	guid: 1,=0A=
=0A=
	// Bind a function to a context, optionally partially applying any=0A=
	// arguments.=0A=
	proxy: function( fn, context ) {=0A=
		if ( typeof context =3D=3D=3D "string" ) {=0A=
			var tmp =3D fn[ context ];=0A=
			context =3D fn;=0A=
			fn =3D tmp;=0A=
		}=0A=
=0A=
		// Quick check to determine if target is callable, in the spec=0A=
		// this throws a TypeError, but we will just return undefined.=0A=
		if ( !jQuery.isFunction( fn ) ) {=0A=
			return undefined;=0A=
		}=0A=
=0A=
		// Simulated bind=0A=
		var args =3D slice.call( arguments, 2 ),=0A=
			proxy =3D function() {=0A=
				return fn.apply( context, args.concat( slice.call( arguments ) ) );=0A=
			};=0A=
=0A=
		// Set the guid of unique handler to the same of original handler, so =
it can be removed=0A=
		proxy.guid =3D fn.guid =3D fn.guid || proxy.guid || jQuery.guid++;=0A=
=0A=
		return proxy;=0A=
	},=0A=
=0A=
	// Mutifunctional method to get and set values to a collection=0A=
	// The value/s can be optionally by executed if its a function=0A=
	access: function( elems, key, value, exec, fn, pass ) {=0A=
		var length =3D elems.length;=0A=
=0A=
		// Setting many attributes=0A=
		if ( typeof key =3D=3D=3D "object" ) {=0A=
			for ( var k in key ) {=0A=
				jQuery.access( elems, k, key[k], exec, fn, value );=0A=
			}=0A=
			return elems;=0A=
		}=0A=
=0A=
		// Setting one attribute=0A=
		if ( value !=3D=3D undefined ) {=0A=
			// Optionally, function values get executed if exec is true=0A=
			exec =3D !pass && exec && jQuery.isFunction(value);=0A=
=0A=
			for ( var i =3D 0; i < length; i++ ) {=0A=
				fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key =
) ) : value, pass );=0A=
			}=0A=
=0A=
			return elems;=0A=
		}=0A=
=0A=
		// Getting an attribute=0A=
		return length ? fn( elems[0], key ) : undefined;=0A=
	},=0A=
=0A=
	now: function() {=0A=
		return (new Date()).getTime();=0A=
	},=0A=
=0A=
	// Use of jQuery.browser is frowned upon.=0A=
	// More details: http://docs.jquery.com/Utilities/jQuery.browser=0A=
	uaMatch: function( ua ) {=0A=
		ua =3D ua.toLowerCase();=0A=
=0A=
		var match =3D rwebkit.exec( ua ) ||=0A=
			ropera.exec( ua ) ||=0A=
			rmsie.exec( ua ) ||=0A=
			ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||=0A=
			[];=0A=
=0A=
		return { browser: match[1] || "", version: match[2] || "0" };=0A=
	},=0A=
=0A=
	sub: function() {=0A=
		function jQuerySub( selector, context ) {=0A=
			return new jQuerySub.fn.init( selector, context );=0A=
		}=0A=
		jQuery.extend( true, jQuerySub, this );=0A=
		jQuerySub.superclass =3D this;=0A=
		jQuerySub.fn =3D jQuerySub.prototype =3D this();=0A=
		jQuerySub.fn.constructor =3D jQuerySub;=0A=
		jQuerySub.sub =3D this.sub;=0A=
		jQuerySub.fn.init =3D function init( selector, context ) {=0A=
			if ( context && context instanceof jQuery && !(context instanceof =
jQuerySub) ) {=0A=
				context =3D jQuerySub( context );=0A=
			}=0A=
=0A=
			return jQuery.fn.init.call( this, selector, context, rootjQuerySub );=0A=
		};=0A=
		jQuerySub.fn.init.prototype =3D jQuerySub.fn;=0A=
		var rootjQuerySub =3D jQuerySub(document);=0A=
		return jQuerySub;=0A=
	},=0A=
=0A=
	browser: {}=0A=
});=0A=
=0A=
// Populate the class2type map=0A=
jQuery.each("Boolean Number String Function Array Date RegExp =
Object".split(" "), function(i, name) {=0A=
	class2type[ "[object " + name + "]" ] =3D name.toLowerCase();=0A=
});=0A=
=0A=
browserMatch =3D jQuery.uaMatch( userAgent );=0A=
if ( browserMatch.browser ) {=0A=
	jQuery.browser[ browserMatch.browser ] =3D true;=0A=
	jQuery.browser.version =3D browserMatch.version;=0A=
}=0A=
=0A=
// Deprecated, use jQuery.browser.webkit instead=0A=
if ( jQuery.browser.webkit ) {=0A=
	jQuery.browser.safari =3D true;=0A=
}=0A=
=0A=
// IE doesn't match non-breaking spaces with \s=0A=
if ( rnotwhite.test( "\xA0" ) ) {=0A=
	trimLeft =3D /^[\s\xA0]+/;=0A=
	trimRight =3D /[\s\xA0]+$/;=0A=
}=0A=
=0A=
// All jQuery objects should point back to these=0A=
rootjQuery =3D jQuery(document);=0A=
=0A=
// Cleanup functions for the document ready method=0A=
if ( document.addEventListener ) {=0A=
	DOMContentLoaded =3D function() {=0A=
		document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, =
false );=0A=
		jQuery.ready();=0A=
	};=0A=
=0A=
} else if ( document.attachEvent ) {=0A=
	DOMContentLoaded =3D function() {=0A=
		// Make sure body exists, at least, in case IE gets a little =
overzealous (ticket #5443).=0A=
		if ( document.readyState =3D=3D=3D "complete" ) {=0A=
			document.detachEvent( "onreadystatechange", DOMContentLoaded );=0A=
			jQuery.ready();=0A=
		}=0A=
	};=0A=
}=0A=
=0A=
// The DOM ready check for Internet Explorer=0A=
function doScrollCheck() {=0A=
	if ( jQuery.isReady ) {=0A=
		return;=0A=
	}=0A=
=0A=
	try {=0A=
		// If IE is used, use the trick by Diego Perini=0A=
		// http://javascript.nwbox.com/IEContentLoaded/=0A=
		document.documentElement.doScroll("left");=0A=
	} catch(e) {=0A=
		setTimeout( doScrollCheck, 1 );=0A=
		return;=0A=
	}=0A=
=0A=
	// and execute any waiting functions=0A=
	jQuery.ready();=0A=
}=0A=
=0A=
// Expose jQuery to the global object=0A=
return jQuery;=0A=
=0A=
})();=0A=
=0A=
=0A=
var // Promise methods=0A=
	promiseMethods =3D "done fail isResolved isRejected promise then always =
pipe".split( " " ),=0A=
	// Static reference to slice=0A=
	sliceDeferred =3D [].slice;=0A=
=0A=
jQuery.extend({=0A=
	// Create a simple deferred (one callbacks list)=0A=
	_Deferred: function() {=0A=
		var // callbacks list=0A=
			callbacks =3D [],=0A=
			// stored [ context , args ]=0A=
			fired,=0A=
			// to avoid firing when already doing so=0A=
			firing,=0A=
			// flag to know if the deferred has been cancelled=0A=
			cancelled,=0A=
			// the deferred itself=0A=
			deferred  =3D {=0A=
=0A=
				// done( f1, f2, ...)=0A=
				done: function() {=0A=
					if ( !cancelled ) {=0A=
						var args =3D arguments,=0A=
							i,=0A=
							length,=0A=
							elem,=0A=
							type,=0A=
							_fired;=0A=
						if ( fired ) {=0A=
							_fired =3D fired;=0A=
							fired =3D 0;=0A=
						}=0A=
						for ( i =3D 0, length =3D args.length; i < length; i++ ) {=0A=
							elem =3D args[ i ];=0A=
							type =3D jQuery.type( elem );=0A=
							if ( type =3D=3D=3D "array" ) {=0A=
								deferred.done.apply( deferred, elem );=0A=
							} else if ( type =3D=3D=3D "function" ) {=0A=
								callbacks.push( elem );=0A=
							}=0A=
						}=0A=
						if ( _fired ) {=0A=
							deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] );=0A=
						}=0A=
					}=0A=
					return this;=0A=
				},=0A=
=0A=
				// resolve with given context and args=0A=
				resolveWith: function( context, args ) {=0A=
					if ( !cancelled && !fired && !firing ) {=0A=
						// make sure args are available (#8421)=0A=
						args =3D args || [];=0A=
						firing =3D 1;=0A=
						try {=0A=
							while( callbacks[ 0 ] ) {=0A=
								callbacks.shift().apply( context, args );=0A=
							}=0A=
						}=0A=
						finally {=0A=
							fired =3D [ context, args ];=0A=
							firing =3D 0;=0A=
						}=0A=
					}=0A=
					return this;=0A=
				},=0A=
=0A=
				// resolve with this as context and given arguments=0A=
				resolve: function() {=0A=
					deferred.resolveWith( this, arguments );=0A=
					return this;=0A=
				},=0A=
=0A=
				// Has this deferred been resolved?=0A=
				isResolved: function() {=0A=
					return !!( firing || fired );=0A=
				},=0A=
=0A=
				// Cancel=0A=
				cancel: function() {=0A=
					cancelled =3D 1;=0A=
					callbacks =3D [];=0A=
					return this;=0A=
				}=0A=
			};=0A=
=0A=
		return deferred;=0A=
	},=0A=
=0A=
	// Full fledged deferred (two callbacks list)=0A=
	Deferred: function( func ) {=0A=
		var deferred =3D jQuery._Deferred(),=0A=
			failDeferred =3D jQuery._Deferred(),=0A=
			promise;=0A=
		// Add errorDeferred methods, then and promise=0A=
		jQuery.extend( deferred, {=0A=
			then: function( doneCallbacks, failCallbacks ) {=0A=
				deferred.done( doneCallbacks ).fail( failCallbacks );=0A=
				return this;=0A=
			},=0A=
			always: function() {=0A=
				return deferred.done.apply( deferred, arguments ).fail.apply( this, =
arguments );=0A=
			},=0A=
			fail: failDeferred.done,=0A=
			rejectWith: failDeferred.resolveWith,=0A=
			reject: failDeferred.resolve,=0A=
			isRejected: failDeferred.isResolved,=0A=
			pipe: function( fnDone, fnFail ) {=0A=
				return jQuery.Deferred(function( newDefer ) {=0A=
					jQuery.each( {=0A=
						done: [ fnDone, "resolve" ],=0A=
						fail: [ fnFail, "reject" ]=0A=
					}, function( handler, data ) {=0A=
						var fn =3D data[ 0 ],=0A=
							action =3D data[ 1 ],=0A=
							returned;=0A=
						if ( jQuery.isFunction( fn ) ) {=0A=
							deferred[ handler ](function() {=0A=
								returned =3D fn.apply( this, arguments );=0A=
								if ( returned && jQuery.isFunction( returned.promise ) ) {=0A=
									returned.promise().then( newDefer.resolve, newDefer.reject );=0A=
								} else {=0A=
									newDefer[ action ]( returned );=0A=
								}=0A=
							});=0A=
						} else {=0A=
							deferred[ handler ]( newDefer[ action ] );=0A=
						}=0A=
					});=0A=
				}).promise();=0A=
			},=0A=
			// Get a promise for this deferred=0A=
			// If obj is provided, the promise aspect is added to the object=0A=
			promise: function( obj ) {=0A=
				if ( obj =3D=3D null ) {=0A=
					if ( promise ) {=0A=
						return promise;=0A=
					}=0A=
					promise =3D obj =3D {};=0A=
				}=0A=
				var i =3D promiseMethods.length;=0A=
				while( i-- ) {=0A=
					obj[ promiseMethods[i] ] =3D deferred[ promiseMethods[i] ];=0A=
				}=0A=
				return obj;=0A=
			}=0A=
		});=0A=
		// Make sure only one callback list will be used=0A=
		deferred.done( failDeferred.cancel ).fail( deferred.cancel );=0A=
		// Unexpose cancel=0A=
		delete deferred.cancel;=0A=
		// Call given func if any=0A=
		if ( func ) {=0A=
			func.call( deferred, deferred );=0A=
		}=0A=
		return deferred;=0A=
	},=0A=
=0A=
	// Deferred helper=0A=
	when: function( firstParam ) {=0A=
		var args =3D arguments,=0A=
			i =3D 0,=0A=
			length =3D args.length,=0A=
			count =3D length,=0A=
			deferred =3D length <=3D 1 && firstParam && jQuery.isFunction( =
firstParam.promise ) ?=0A=
				firstParam :=0A=
				jQuery.Deferred();=0A=
		function resolveFunc( i ) {=0A=
			return function( value ) {=0A=
				args[ i ] =3D arguments.length > 1 ? sliceDeferred.call( arguments, =
0 ) : value;=0A=
				if ( !( --count ) ) {=0A=
					// Strange bug in FF4:=0A=
					// Values changed onto the arguments object sometimes end up as =
undefined values=0A=
					// outside the $.when method. Cloning the object into a fresh array =
solves the issue=0A=
					deferred.resolveWith( deferred, sliceDeferred.call( args, 0 ) );=0A=
				}=0A=
			};=0A=
		}=0A=
		if ( length > 1 ) {=0A=
			for( ; i < length; i++ ) {=0A=
				if ( args[ i ] && jQuery.isFunction( args[ i ].promise ) ) {=0A=
					args[ i ].promise().then( resolveFunc(i), deferred.reject );=0A=
				} else {=0A=
					--count;=0A=
				}=0A=
			}=0A=
			if ( !count ) {=0A=
				deferred.resolveWith( deferred, args );=0A=
			}=0A=
		} else if ( deferred !=3D=3D firstParam ) {=0A=
			deferred.resolveWith( deferred, length ? [ firstParam ] : [] );=0A=
		}=0A=
		return deferred.promise();=0A=
	}=0A=
});=0A=
=0A=
=0A=
=0A=
jQuery.support =3D (function() {=0A=
=0A=
	var div =3D document.createElement( "div" ),=0A=
		documentElement =3D document.documentElement,=0A=
		all,=0A=
		a,=0A=
		select,=0A=
		opt,=0A=
		input,=0A=
		marginDiv,=0A=
		support,=0A=
		fragment,=0A=
		body,=0A=
		bodyStyle,=0A=
		tds,=0A=
		events,=0A=
		eventName,=0A=
		i,=0A=
		isSupported;=0A=
=0A=
	// Preliminary tests=0A=
	div.setAttribute("className", "t");=0A=
	div.innerHTML =3D "   <link/><table></table><a href=3D'/a' =
style=3D'top:1px;float:left;opacity:.55;'>a</a><input =
type=3D'checkbox'/>";=0A=
=0A=
	all =3D div.getElementsByTagName( "*" );=0A=
	a =3D div.getElementsByTagName( "a" )[ 0 ];=0A=
=0A=
	// Can't get basic test support=0A=
	if ( !all || !all.length || !a ) {=0A=
		return {};=0A=
	}=0A=
=0A=
	// First batch of supports tests=0A=
	select =3D document.createElement( "select" );=0A=
	opt =3D select.appendChild( document.createElement("option") );=0A=
	input =3D div.getElementsByTagName( "input" )[ 0 ];=0A=
=0A=
	support =3D {=0A=
		// IE strips leading whitespace when .innerHTML is used=0A=
		leadingWhitespace: ( div.firstChild.nodeType =3D=3D=3D 3 ),=0A=
=0A=
		// Make sure that tbody elements aren't automatically inserted=0A=
		// IE will insert them into empty tables=0A=
		tbody: !div.getElementsByTagName( "tbody" ).length,=0A=
=0A=
		// Make sure that link elements get serialized correctly by innerHTML=0A=
		// This requires a wrapper element in IE=0A=
		htmlSerialize: !!div.getElementsByTagName( "link" ).length,=0A=
=0A=
		// Get the style information from getAttribute=0A=
		// (IE uses .cssText instead)=0A=
		style: /top/.test( a.getAttribute("style") ),=0A=
=0A=
		// Make sure that URLs aren't manipulated=0A=
		// (IE normalizes it by default)=0A=
		hrefNormalized: ( a.getAttribute( "href" ) =3D=3D=3D "/a" ),=0A=
=0A=
		// Make sure that element opacity exists=0A=
		// (IE uses filter instead)=0A=
		// Use a regex to work around a WebKit issue. See #5145=0A=
		opacity: /^0.55$/.test( a.style.opacity ),=0A=
=0A=
		// Verify style float existence=0A=
		// (IE uses styleFloat instead of cssFloat)=0A=
		cssFloat: !!a.style.cssFloat,=0A=
=0A=
		// Make sure that if no value is specified for a checkbox=0A=
		// that it defaults to "on".=0A=
		// (WebKit defaults to "" instead)=0A=
		checkOn: ( input.value =3D=3D=3D "on" ),=0A=
=0A=
		// Make sure that a selected-by-default option has a working selected =
property.=0A=
		// (WebKit defaults to false instead of true, IE too, if it's in an =
optgroup)=0A=
		optSelected: opt.selected,=0A=
=0A=
		// Test setAttribute on camelCase class. If it works, we need =
attrFixes when doing get/setAttribute (ie6/7)=0A=
		getSetAttribute: div.className !=3D=3D "t",=0A=
=0A=
		// Will be defined later=0A=
		submitBubbles: true,=0A=
		changeBubbles: true,=0A=
		focusinBubbles: false,=0A=
		deleteExpando: true,=0A=
		noCloneEvent: true,=0A=
		inlineBlockNeedsLayout: false,=0A=
		shrinkWrapBlocks: false,=0A=
		reliableMarginRight: true=0A=
	};=0A=
=0A=
	// Make sure checked status is properly cloned=0A=
	input.checked =3D true;=0A=
	support.noCloneChecked =3D input.cloneNode( true ).checked;=0A=
=0A=
	// Make sure that the options inside disabled selects aren't marked as =
disabled=0A=
	// (WebKit marks them as disabled)=0A=
	select.disabled =3D true;=0A=
	support.optDisabled =3D !opt.disabled;=0A=
=0A=
	// Test to see if it's possible to delete an expando from an element=0A=
	// Fails in Internet Explorer=0A=
	try {=0A=
		delete div.test;=0A=
	} catch( e ) {=0A=
		support.deleteExpando =3D false;=0A=
	}=0A=
=0A=
	if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {=0A=
		div.attachEvent( "onclick", function click() {=0A=
			// Cloning a node shouldn't copy over any=0A=
			// bound event handlers (IE does this)=0A=
			support.noCloneEvent =3D false;=0A=
			div.detachEvent( "onclick", click );=0A=
		});=0A=
		div.cloneNode( true ).fireEvent( "onclick" );=0A=
	}=0A=
=0A=
	// Check if a radio maintains it's value=0A=
	// after being appended to the DOM=0A=
	input =3D document.createElement("input");=0A=
	input.value =3D "t";=0A=
	input.setAttribute("type", "radio");=0A=
	support.radioValue =3D input.value =3D=3D=3D "t";=0A=
=0A=
	input.setAttribute("checked", "checked");=0A=
	div.appendChild( input );=0A=
	fragment =3D document.createDocumentFragment();=0A=
	fragment.appendChild( div.firstChild );=0A=
=0A=
	// WebKit doesn't clone checked state correctly in fragments=0A=
	support.checkClone =3D fragment.cloneNode( true ).cloneNode( true =
).lastChild.checked;=0A=
=0A=
	div.innerHTML =3D "";=0A=
=0A=
	// Figure out if the W3C box model works as expected=0A=
	div.style.width =3D div.style.paddingLeft =3D "1px";=0A=
=0A=
	// We use our own, invisible, body=0A=
	body =3D document.createElement( "body" );=0A=
	bodyStyle =3D {=0A=
		visibility: "hidden",=0A=
		width: 0,=0A=
		height: 0,=0A=
		border: 0,=0A=
		margin: 0,=0A=
		// Set background to avoid IE crashes when removing (#9028)=0A=
		background: "none"=0A=
	};=0A=
	for ( i in bodyStyle ) {=0A=
		body.style[ i ] =3D bodyStyle[ i ];=0A=
	}=0A=
	body.appendChild( div );=0A=
	documentElement.insertBefore( body, documentElement.firstChild );=0A=
=0A=
	// Check if a disconnected checkbox will retain its checked=0A=
	// value of true after appended to the DOM (IE6/7)=0A=
	support.appendChecked =3D input.checked;=0A=
=0A=
	support.boxModel =3D div.offsetWidth =3D=3D=3D 2;=0A=
=0A=
	if ( "zoom" in div.style ) {=0A=
		// Check if natively block-level elements act like inline-block=0A=
		// elements when setting their display to 'inline' and giving=0A=
		// them layout=0A=
		// (IE < 8 does this)=0A=
		div.style.display =3D "inline";=0A=
		div.style.zoom =3D 1;=0A=
		support.inlineBlockNeedsLayout =3D ( div.offsetWidth =3D=3D=3D 2 );=0A=
=0A=
		// Check if elements with layout shrink-wrap their children=0A=
		// (IE 6 does this)=0A=
		div.style.display =3D "";=0A=
		div.innerHTML =3D "<div style=3D'width:4px;'></div>";=0A=
		support.shrinkWrapBlocks =3D ( div.offsetWidth !=3D=3D 2 );=0A=
	}=0A=
=0A=
	div.innerHTML =3D "<table><tr><td =
style=3D'padding:0;border:0;display:none'></td><td>t</td></tr></table>";=0A=
	tds =3D div.getElementsByTagName( "td" );=0A=
=0A=
	// Check if table cells still have offsetWidth/Height when they are set=0A=
	// to display:none and there are still other visible table cells in a=0A=
	// table row; if so, offsetWidth/Height are not reliable for use when=0A=
	// determining if an element has been hidden directly using=0A=
	// display:none (it is still safe to use offsets if a parent element is=0A=
	// hidden; don safety goggles and see bug #4512 for more information).=0A=
	// (only IE 8 fails this test)=0A=
	isSupported =3D ( tds[ 0 ].offsetHeight =3D=3D=3D 0 );=0A=
=0A=
	tds[ 0 ].style.display =3D "";=0A=
	tds[ 1 ].style.display =3D "none";=0A=
=0A=
	// Check if empty table cells still have offsetWidth/Height=0A=
	// (IE < 8 fail this test)=0A=
	support.reliableHiddenOffsets =3D isSupported && ( tds[ 0 =
].offsetHeight =3D=3D=3D 0 );=0A=
	div.innerHTML =3D "";=0A=
=0A=
	// Check if div with explicit width and no margin-right incorrectly=0A=
	// gets computed margin-right based on width of container. For more=0A=
	// info see bug #3333=0A=
	// Fails in WebKit before Feb 2011 nightlies=0A=
	// WebKit Bug 13343 - getComputedStyle returns wrong value for =
margin-right=0A=
	if ( document.defaultView && document.defaultView.getComputedStyle ) {=0A=
		marginDiv =3D document.createElement( "div" );=0A=
		marginDiv.style.width =3D "0";=0A=
		marginDiv.style.marginRight =3D "0";=0A=
		div.appendChild( marginDiv );=0A=
		support.reliableMarginRight =3D=0A=
			( parseInt( ( document.defaultView.getComputedStyle( marginDiv, null =
) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) =3D=3D=3D 0;=0A=
	}=0A=
=0A=
	// Remove the body element we added=0A=
	body.innerHTML =3D "";=0A=
	documentElement.removeChild( body );=0A=
=0A=
	// Technique from Juriy Zaytsev=0A=
	// =
http://thinkweb2.com/projects/prototype/detecting-event-support-without-b=
rowser-sniffing/=0A=
	// We only care about the case where non-standard event systems=0A=
	// are used, namely in IE. Short-circuiting here helps us to=0A=
	// avoid an eval call (in setAttribute) which can cause CSP=0A=
	// to go haywire. See: https://developer.mozilla.org/en/Security/CSP=0A=
	if ( div.attachEvent ) {=0A=
		for( i in {=0A=
			submit: 1,=0A=
			change: 1,=0A=
			focusin: 1=0A=
		} ) {=0A=
			eventName =3D "on" + i;=0A=
			isSupported =3D ( eventName in div );=0A=
			if ( !isSupported ) {=0A=
				div.setAttribute( eventName, "return;" );=0A=
				isSupported =3D ( typeof div[ eventName ] =3D=3D=3D "function" );=0A=
			}=0A=
			support[ i + "Bubbles" ] =3D isSupported;=0A=
		}=0A=
	}=0A=
=0A=
	return support;=0A=
})();=0A=
=0A=
// Keep track of boxModel=0A=
jQuery.boxModel =3D jQuery.support.boxModel;=0A=
=0A=
=0A=
=0A=
=0A=
var rbrace =3D /^(?:\{.*\}|\[.*\])$/,=0A=
	rmultiDash =3D /([a-z])([A-Z])/g;=0A=
=0A=
jQuery.extend({=0A=
	cache: {},=0A=
=0A=
	// Please use with caution=0A=
	uuid: 0,=0A=
=0A=
	// Unique for each copy of jQuery on the page=0A=
	// Non-digits removed to match rinlinejQuery=0A=
	expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( =
/\D/g, "" ),=0A=
=0A=
	// The following elements throw uncatchable exceptions if you=0A=
	// attempt to add expando properties to them.=0A=
	noData: {=0A=
		"embed": true,=0A=
		// Ban all objects except for Flash (which handle expandos)=0A=
		"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",=0A=
		"applet": true=0A=
	},=0A=
=0A=
	hasData: function( elem ) {=0A=
		elem =3D elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ =
jQuery.expando ];=0A=
=0A=
		return !!elem && !isEmptyDataObject( elem );=0A=
	},=0A=
=0A=
	data: function( elem, name, data, pvt /* Internal Use Only */ ) {=0A=
		if ( !jQuery.acceptData( elem ) ) {=0A=
			return;=0A=
		}=0A=
=0A=
		var internalKey =3D jQuery.expando, getByName =3D typeof name =
=3D=3D=3D "string", thisCache,=0A=
=0A=
			// We have to handle DOM nodes and JS objects differently because =
IE6-7=0A=
			// can't GC object references properly across the DOM-JS boundary=0A=
			isNode =3D elem.nodeType,=0A=
=0A=
			// Only DOM nodes need the global jQuery cache; JS object data is=0A=
			// attached directly to the object so GC can occur automatically=0A=
			cache =3D isNode ? jQuery.cache : elem,=0A=
=0A=
			// Only defining an ID for JS objects if its cache already exists =
allows=0A=
			// the code to shortcut on the same path as a DOM node with no cache=0A=
			id =3D isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && =
jQuery.expando;=0A=
=0A=
		// Avoid doing any more work than we need to when trying to get data =
on an=0A=
		// object that has no data at all=0A=
		if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName =
&& data =3D=3D=3D undefined ) {=0A=
			return;=0A=
		}=0A=
=0A=
		if ( !id ) {=0A=
			// Only DOM nodes need a new unique ID for each element since their =
data=0A=
			// ends up in the global cache=0A=
			if ( isNode ) {=0A=
				elem[ jQuery.expando ] =3D id =3D ++jQuery.uuid;=0A=
			} else {=0A=
				id =3D jQuery.expando;=0A=
			}=0A=
		}=0A=
=0A=
		if ( !cache[ id ] ) {=0A=
			cache[ id ] =3D {};=0A=
=0A=
			// TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery=0A=
			// metadata on plain JS objects when the object is serialized using=0A=
			// JSON.stringify=0A=
			if ( !isNode ) {=0A=
				cache[ id ].toJSON =3D jQuery.noop;=0A=
			}=0A=
		}=0A=
=0A=
		// An object can be passed to jQuery.data instead of a key/value pair; =
this gets=0A=
		// shallow copied over onto the existing cache=0A=
		if ( typeof name =3D=3D=3D "object" || typeof name =3D=3D=3D =
"function" ) {=0A=
			if ( pvt ) {=0A=
				cache[ id ][ internalKey ] =3D jQuery.extend(cache[ id ][ =
internalKey ], name);=0A=
			} else {=0A=
				cache[ id ] =3D jQuery.extend(cache[ id ], name);=0A=
			}=0A=
		}=0A=
=0A=
		thisCache =3D cache[ id ];=0A=
=0A=
		// Internal jQuery data is stored in a separate object inside the =
object's data=0A=
		// cache in order to avoid key collisions between internal data and =
user-defined=0A=
		// data=0A=
		if ( pvt ) {=0A=
			if ( !thisCache[ internalKey ] ) {=0A=
				thisCache[ internalKey ] =3D {};=0A=
			}=0A=
=0A=
			thisCache =3D thisCache[ internalKey ];=0A=
		}=0A=
=0A=
		if ( data !=3D=3D undefined ) {=0A=
			thisCache[ jQuery.camelCase( name ) ] =3D data;=0A=
		}=0A=
=0A=
		// TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users =
should=0A=
		// not attempt to inspect the internal events object using =
jQuery.data, as this=0A=
		// internal data object is undocumented and subject to change.=0A=
		if ( name =3D=3D=3D "events" && !thisCache[name] ) {=0A=
			return thisCache[ internalKey ] && thisCache[ internalKey ].events;=0A=
		}=0A=
=0A=
		return getByName ? thisCache[ jQuery.camelCase( name ) ] : thisCache;=0A=
	},=0A=
=0A=
	removeData: function( elem, name, pvt /* Internal Use Only */ ) {=0A=
		if ( !jQuery.acceptData( elem ) ) {=0A=
			return;=0A=
		}=0A=
=0A=
		var internalKey =3D jQuery.expando, isNode =3D elem.nodeType,=0A=
=0A=
			// See jQuery.data for more information=0A=
			cache =3D isNode ? jQuery.cache : elem,=0A=
=0A=
			// See jQuery.data for more information=0A=
			id =3D isNode ? elem[ jQuery.expando ] : jQuery.expando;=0A=
=0A=
		// If there is already no cache entry for this object, there is no=0A=
		// purpose in continuing=0A=
		if ( !cache[ id ] ) {=0A=
			return;=0A=
		}=0A=
=0A=
		if ( name ) {=0A=
			var thisCache =3D pvt ? cache[ id ][ internalKey ] : cache[ id ];=0A=
=0A=
			if ( thisCache ) {=0A=
				delete thisCache[ name ];=0A=
=0A=
				// If there is no data left in the cache, we want to continue=0A=
				// and let the cache object itself get destroyed=0A=
				if ( !isEmptyDataObject(thisCache) ) {=0A=
					return;=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		// See jQuery.data for more information=0A=
		if ( pvt ) {=0A=
			delete cache[ id ][ internalKey ];=0A=
=0A=
			// Don't destroy the parent cache unless the internal data object=0A=
			// had been the only thing left in it=0A=
			if ( !isEmptyDataObject(cache[ id ]) ) {=0A=
				return;=0A=
			}=0A=
		}=0A=
=0A=
		var internalCache =3D cache[ id ][ internalKey ];=0A=
=0A=
		// Browsers that fail expando deletion also refuse to delete expandos =
on=0A=
		// the window, but it will allow it on all other JS objects; other =
browsers=0A=
		// don't care=0A=
		if ( jQuery.support.deleteExpando || cache !=3D window ) {=0A=
			delete cache[ id ];=0A=
		} else {=0A=
			cache[ id ] =3D null;=0A=
		}=0A=
=0A=
		// We destroyed the entire user cache at once because it's faster than=0A=
		// iterating through each key, but we need to continue to persist =
internal=0A=
		// data if it existed=0A=
		if ( internalCache ) {=0A=
			cache[ id ] =3D {};=0A=
			// TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery=0A=
			// metadata on plain JS objects when the object is serialized using=0A=
			// JSON.stringify=0A=
			if ( !isNode ) {=0A=
				cache[ id ].toJSON =3D jQuery.noop;=0A=
			}=0A=
=0A=
			cache[ id ][ internalKey ] =3D internalCache;=0A=
=0A=
		// Otherwise, we need to eliminate the expando on the node to avoid=0A=
		// false lookups in the cache for entries that no longer exist=0A=
		} else if ( isNode ) {=0A=
			// IE does not allow us to delete expando properties from nodes,=0A=
			// nor does it have a removeAttribute function on Document nodes;=0A=
			// we must handle all of these cases=0A=
			if ( jQuery.support.deleteExpando ) {=0A=
				delete elem[ jQuery.expando ];=0A=
			} else if ( elem.removeAttribute ) {=0A=
				elem.removeAttribute( jQuery.expando );=0A=
			} else {=0A=
				elem[ jQuery.expando ] =3D null;=0A=
			}=0A=
		}=0A=
	},=0A=
=0A=
	// For internal use only.=0A=
	_data: function( elem, name, data ) {=0A=
		return jQuery.data( elem, name, data, true );=0A=
	},=0A=
=0A=
	// A method for determining if a DOM node can handle the data expando=0A=
	acceptData: function( elem ) {=0A=
		if ( elem.nodeName ) {=0A=
			var match =3D jQuery.noData[ elem.nodeName.toLowerCase() ];=0A=
=0A=
			if ( match ) {=0A=
				return !(match =3D=3D=3D true || elem.getAttribute("classid") =
!=3D=3D match);=0A=
			}=0A=
		}=0A=
=0A=
		return true;=0A=
	}=0A=
});=0A=
=0A=
jQuery.fn.extend({=0A=
	data: function( key, value ) {=0A=
		var data =3D null;=0A=
=0A=
		if ( typeof key =3D=3D=3D "undefined" ) {=0A=
			if ( this.length ) {=0A=
				data =3D jQuery.data( this[0] );=0A=
=0A=
				if ( this[0].nodeType =3D=3D=3D 1 ) {=0A=
			    var attr =3D this[0].attributes, name;=0A=
					for ( var i =3D 0, l =3D attr.length; i < l; i++ ) {=0A=
						name =3D attr[i].name;=0A=
=0A=
						if ( name.indexOf( "data-" ) =3D=3D=3D 0 ) {=0A=
							name =3D jQuery.camelCase( name.substring(5) );=0A=
=0A=
							dataAttr( this[0], name, data[ name ] );=0A=
						}=0A=
					}=0A=
				}=0A=
			}=0A=
=0A=
			return data;=0A=
=0A=
		} else if ( typeof key =3D=3D=3D "object" ) {=0A=
			return this.each(function() {=0A=
				jQuery.data( this, key );=0A=
			});=0A=
		}=0A=
=0A=
		var parts =3D key.split(".");=0A=
		parts[1] =3D parts[1] ? "." + parts[1] : "";=0A=
=0A=
		if ( value =3D=3D=3D undefined ) {=0A=
			data =3D this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);=0A=
=0A=
			// Try to fetch any internally stored data first=0A=
			if ( data =3D=3D=3D undefined && this.length ) {=0A=
				data =3D jQuery.data( this[0], key );=0A=
				data =3D dataAttr( this[0], key, data );=0A=
			}=0A=
=0A=
			return data =3D=3D=3D undefined && parts[1] ?=0A=
				this.data( parts[0] ) :=0A=
				data;=0A=
=0A=
		} else {=0A=
			return this.each(function() {=0A=
				var $this =3D jQuery( this ),=0A=
					args =3D [ parts[0], value ];=0A=
=0A=
				$this.triggerHandler( "setData" + parts[1] + "!", args );=0A=
				jQuery.data( this, key, value );=0A=
				$this.triggerHandler( "changeData" + parts[1] + "!", args );=0A=
			});=0A=
		}=0A=
	},=0A=
=0A=
	removeData: function( key ) {=0A=
		return this.each(function() {=0A=
			jQuery.removeData( this, key );=0A=
		});=0A=
	}=0A=
});=0A=
=0A=
function dataAttr( elem, key, data ) {=0A=
	// If nothing was found internally, try to fetch any=0A=
	// data from the HTML5 data-* attribute=0A=
	if ( data =3D=3D=3D undefined && elem.nodeType =3D=3D=3D 1 ) {=0A=
		var name =3D "data-" + key.replace( rmultiDash, "$1-$2" =
).toLowerCase();=0A=
=0A=
		data =3D elem.getAttribute( name );=0A=
=0A=
		if ( typeof data =3D=3D=3D "string" ) {=0A=
			try {=0A=
				data =3D data =3D=3D=3D "true" ? true :=0A=
				data =3D=3D=3D "false" ? false :=0A=
				data =3D=3D=3D "null" ? null :=0A=
				!jQuery.isNaN( data ) ? parseFloat( data ) :=0A=
					rbrace.test( data ) ? jQuery.parseJSON( data ) :=0A=
					data;=0A=
			} catch( e ) {}=0A=
=0A=
			// Make sure we set the data so it isn't changed later=0A=
			jQuery.data( elem, key, data );=0A=
=0A=
		} else {=0A=
			data =3D undefined;=0A=
		}=0A=
	}=0A=
=0A=
	return data;=0A=
}=0A=
=0A=
// TODO: This is a hack for 1.5 ONLY to allow objects with a single =
toJSON=0A=
// property to be considered empty objects; this property always exists =
in=0A=
// order to make sure JSON.stringify does not expose internal metadata=0A=
function isEmptyDataObject( obj ) {=0A=
	for ( var name in obj ) {=0A=
		if ( name !=3D=3D "toJSON" ) {=0A=
			return false;=0A=
		}=0A=
	}=0A=
=0A=
	return true;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
function handleQueueMarkDefer( elem, type, src ) {=0A=
	var deferDataKey =3D type + "defer",=0A=
		queueDataKey =3D type + "queue",=0A=
		markDataKey =3D type + "mark",=0A=
		defer =3D jQuery.data( elem, deferDataKey, undefined, true );=0A=
	if ( defer &&=0A=
		( src =3D=3D=3D "queue" || !jQuery.data( elem, queueDataKey, =
undefined, true ) ) &&=0A=
		( src =3D=3D=3D "mark" || !jQuery.data( elem, markDataKey, undefined, =
true ) ) ) {=0A=
		// Give room for hard-coded callbacks to fire first=0A=
		// and eventually mark/queue something else on the element=0A=
		setTimeout( function() {=0A=
			if ( !jQuery.data( elem, queueDataKey, undefined, true ) &&=0A=
				!jQuery.data( elem, markDataKey, undefined, true ) ) {=0A=
				jQuery.removeData( elem, deferDataKey, true );=0A=
				defer.resolve();=0A=
			}=0A=
		}, 0 );=0A=
	}=0A=
}=0A=
=0A=
jQuery.extend({=0A=
=0A=
	_mark: function( elem, type ) {=0A=
		if ( elem ) {=0A=
			type =3D (type || "fx") + "mark";=0A=
			jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) =
+ 1, true );=0A=
		}=0A=
	},=0A=
=0A=
	_unmark: function( force, elem, type ) {=0A=
		if ( force !=3D=3D true ) {=0A=
			type =3D elem;=0A=
			elem =3D force;=0A=
			force =3D false;=0A=
		}=0A=
		if ( elem ) {=0A=
			type =3D type || "fx";=0A=
			var key =3D type + "mark",=0A=
				count =3D force ? 0 : ( (jQuery.data( elem, key, undefined, true) || =
1 ) - 1 );=0A=
			if ( count ) {=0A=
				jQuery.data( elem, key, count, true );=0A=
			} else {=0A=
				jQuery.removeData( elem, key, true );=0A=
				handleQueueMarkDefer( elem, type, "mark" );=0A=
			}=0A=
		}=0A=
	},=0A=
=0A=
	queue: function( elem, type, data ) {=0A=
		if ( elem ) {=0A=
			type =3D (type || "fx") + "queue";=0A=
			var q =3D jQuery.data( elem, type, undefined, true );=0A=
			// Speed up dequeue by getting out quickly if this is just a lookup=0A=
			if ( data ) {=0A=
				if ( !q || jQuery.isArray(data) ) {=0A=
					q =3D jQuery.data( elem, type, jQuery.makeArray(data), true );=0A=
				} else {=0A=
					q.push( data );=0A=
				}=0A=
			}=0A=
			return q || [];=0A=
		}=0A=
	},=0A=
=0A=
	dequeue: function( elem, type ) {=0A=
		type =3D type || "fx";=0A=
=0A=
		var queue =3D jQuery.queue( elem, type ),=0A=
			fn =3D queue.shift(),=0A=
			defer;=0A=
=0A=
		// If the fx queue is dequeued, always remove the progress sentinel=0A=
		if ( fn =3D=3D=3D "inprogress" ) {=0A=
			fn =3D queue.shift();=0A=
		}=0A=
=0A=
		if ( fn ) {=0A=
			// Add a progress sentinel to prevent the fx queue from being=0A=
			// automatically dequeued=0A=
			if ( type =3D=3D=3D "fx" ) {=0A=
				queue.unshift("inprogress");=0A=
			}=0A=
=0A=
			fn.call(elem, function() {=0A=
				jQuery.dequeue(elem, type);=0A=
			});=0A=
		}=0A=
=0A=
		if ( !queue.length ) {=0A=
			jQuery.removeData( elem, type + "queue", true );=0A=
			handleQueueMarkDefer( elem, type, "queue" );=0A=
		}=0A=
	}=0A=
});=0A=
=0A=
jQuery.fn.extend({=0A=
	queue: function( type, data ) {=0A=
		if ( typeof type !=3D=3D "string" ) {=0A=
			data =3D type;=0A=
			type =3D "fx";=0A=
		}=0A=
=0A=
		if ( data =3D=3D=3D undefined ) {=0A=
			return jQuery.queue( this[0], type );=0A=
		}=0A=
		return this.each(function() {=0A=
			var queue =3D jQuery.queue( this, type, data );=0A=
=0A=
			if ( type =3D=3D=3D "fx" && queue[0] !=3D=3D "inprogress" ) {=0A=
				jQuery.dequeue( this, type );=0A=
			}=0A=
		});=0A=
	},=0A=
	dequeue: function( type ) {=0A=
		return this.each(function() {=0A=
			jQuery.dequeue( this, type );=0A=
		});=0A=
	},=0A=
	// Based off of the plugin by Clint Helfers, with permission.=0A=
	// http://blindsignals.com/index.php/2009/07/jquery-delay/=0A=
	delay: function( time, type ) {=0A=
		time =3D jQuery.fx ? jQuery.fx.speeds[time] || time : time;=0A=
		type =3D type || "fx";=0A=
=0A=
		return this.queue( type, function() {=0A=
			var elem =3D this;=0A=
			setTimeout(function() {=0A=
				jQuery.dequeue( elem, type );=0A=
			}, time );=0A=
		});=0A=
	},=0A=
	clearQueue: function( type ) {=0A=
		return this.queue( type || "fx", [] );=0A=
	},=0A=
	// Get a promise resolved when queues of a certain type=0A=
	// are emptied (fx is the type by default)=0A=
	promise: function( type, object ) {=0A=
		if ( typeof type !=3D=3D "string" ) {=0A=
			object =3D type;=0A=
			type =3D undefined;=0A=
		}=0A=
		type =3D type || "fx";=0A=
		var defer =3D jQuery.Deferred(),=0A=
			elements =3D this,=0A=
			i =3D elements.length,=0A=
			count =3D 1,=0A=
			deferDataKey =3D type + "defer",=0A=
			queueDataKey =3D type + "queue",=0A=
			markDataKey =3D type + "mark",=0A=
			tmp;=0A=
		function resolve() {=0A=
			if ( !( --count ) ) {=0A=
				defer.resolveWith( elements, [ elements ] );=0A=
			}=0A=
		}=0A=
		while( i-- ) {=0A=
			if (( tmp =3D jQuery.data( elements[ i ], deferDataKey, undefined, =
true ) ||=0A=
					( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||=0A=
						jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&=0A=
					jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true =
) )) {=0A=
				count++;=0A=
				tmp.done( resolve );=0A=
			}=0A=
		}=0A=
		resolve();=0A=
		return defer.promise();=0A=
	}=0A=
});=0A=
=0A=
=0A=
=0A=
=0A=
var rclass =3D /[\n\t\r]/g,=0A=
	rspace =3D /\s+/,=0A=
	rreturn =3D /\r/g,=0A=
	rtype =3D /^(?:button|input)$/i,=0A=
	rfocusable =3D /^(?:button|input|object|select|textarea)$/i,=0A=
	rclickable =3D /^a(?:rea)?$/i,=0A=
	rboolean =3D =
/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop=
|multiple|open|readonly|required|scoped|selected)$/i,=0A=
	rinvalidChar =3D /\:/,=0A=
	formHook, boolHook;=0A=
=0A=
jQuery.fn.extend({=0A=
	attr: function( name, value ) {=0A=
		return jQuery.access( this, name, value, true, jQuery.attr );=0A=
	},=0A=
=0A=
	removeAttr: function( name ) {=0A=
		return this.each(function() {=0A=
			jQuery.removeAttr( this, name );=0A=
		});=0A=
	},=0A=
	=0A=
	prop: function( name, value ) {=0A=
		return jQuery.access( this, name, value, true, jQuery.prop );=0A=
	},=0A=
	=0A=
	removeProp: function( name ) {=0A=
		name =3D jQuery.propFix[ name ] || name;=0A=
		return this.each(function() {=0A=
			// try/catch handles cases where IE balks (such as removing a =
property on window)=0A=
			try {=0A=
				this[ name ] =3D undefined;=0A=
				delete this[ name ];=0A=
			} catch( e ) {}=0A=
		});=0A=
	},=0A=
=0A=
	addClass: function( value ) {=0A=
		if ( jQuery.isFunction( value ) ) {=0A=
			return this.each(function(i) {=0A=
				var self =3D jQuery(this);=0A=
				self.addClass( value.call(this, i, self.attr("class") || "") );=0A=
			});=0A=
		}=0A=
=0A=
		if ( value && typeof value =3D=3D=3D "string" ) {=0A=
			var classNames =3D (value || "").split( rspace );=0A=
=0A=
			for ( var i =3D 0, l =3D this.length; i < l; i++ ) {=0A=
				var elem =3D this[i];=0A=
=0A=
				if ( elem.nodeType =3D=3D=3D 1 ) {=0A=
					if ( !elem.className ) {=0A=
						elem.className =3D value;=0A=
=0A=
					} else {=0A=
						var className =3D " " + elem.className + " ",=0A=
							setClass =3D elem.className;=0A=
=0A=
						for ( var c =3D 0, cl =3D classNames.length; c < cl; c++ ) {=0A=
							if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) {=0A=
								setClass +=3D " " + classNames[c];=0A=
							}=0A=
						}=0A=
						elem.className =3D jQuery.trim( setClass );=0A=
					}=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	removeClass: function( value ) {=0A=
		if ( jQuery.isFunction(value) ) {=0A=
			return this.each(function(i) {=0A=
				var self =3D jQuery(this);=0A=
				self.removeClass( value.call(this, i, self.attr("class")) );=0A=
			});=0A=
		}=0A=
=0A=
		if ( (value && typeof value =3D=3D=3D "string") || value =3D=3D=3D =
undefined ) {=0A=
			var classNames =3D (value || "").split( rspace );=0A=
=0A=
			for ( var i =3D 0, l =3D this.length; i < l; i++ ) {=0A=
				var elem =3D this[i];=0A=
=0A=
				if ( elem.nodeType =3D=3D=3D 1 && elem.className ) {=0A=
					if ( value ) {=0A=
						var className =3D (" " + elem.className + " ").replace(rclass, " =
");=0A=
						for ( var c =3D 0, cl =3D classNames.length; c < cl; c++ ) {=0A=
							className =3D className.replace(" " + classNames[c] + " ", " ");=0A=
						}=0A=
						elem.className =3D jQuery.trim( className );=0A=
=0A=
					} else {=0A=
						elem.className =3D "";=0A=
					}=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	toggleClass: function( value, stateVal ) {=0A=
		var type =3D typeof value,=0A=
			isBool =3D typeof stateVal =3D=3D=3D "boolean";=0A=
=0A=
		if ( jQuery.isFunction( value ) ) {=0A=
			return this.each(function(i) {=0A=
				var self =3D jQuery(this);=0A=
				self.toggleClass( value.call(this, i, self.attr("class"), stateVal), =
stateVal );=0A=
			});=0A=
		}=0A=
=0A=
		return this.each(function() {=0A=
			if ( type =3D=3D=3D "string" ) {=0A=
				// toggle individual class names=0A=
				var className,=0A=
					i =3D 0,=0A=
					self =3D jQuery( this ),=0A=
					state =3D stateVal,=0A=
					classNames =3D value.split( rspace );=0A=
=0A=
				while ( (className =3D classNames[ i++ ]) ) {=0A=
					// check each className given, space seperated list=0A=
					state =3D isBool ? state : !self.hasClass( className );=0A=
					self[ state ? "addClass" : "removeClass" ]( className );=0A=
				}=0A=
=0A=
			} else if ( type =3D=3D=3D "undefined" || type =3D=3D=3D "boolean" ) {=0A=
				if ( this.className ) {=0A=
					// store className if set=0A=
					jQuery._data( this, "__className__", this.className );=0A=
				}=0A=
=0A=
				// toggle whole className=0A=
				this.className =3D this.className || value =3D=3D=3D false ? "" : =
jQuery._data( this, "__className__" ) || "";=0A=
			}=0A=
		});=0A=
	},=0A=
=0A=
	hasClass: function( selector ) {=0A=
		var className =3D " " + selector + " ";=0A=
		for ( var i =3D 0, l =3D this.length; i < l; i++ ) {=0A=
			if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( =
className ) > -1 ) {=0A=
				return true;=0A=
			}=0A=
		}=0A=
=0A=
		return false;=0A=
	},=0A=
=0A=
	val: function( value ) {=0A=
		var hooks, ret,=0A=
			elem =3D this[0];=0A=
		=0A=
		if ( !arguments.length ) {=0A=
			if ( elem ) {=0A=
				hooks =3D jQuery.valHooks[ elem.nodeName.toLowerCase() ] || =
jQuery.valHooks[ elem.type ];=0A=
=0A=
				if ( hooks && "get" in hooks && (ret =3D hooks.get( elem, "value" )) =
!=3D=3D undefined ) {=0A=
					return ret;=0A=
				}=0A=
=0A=
				return (elem.value || "").replace(rreturn, "");=0A=
			}=0A=
=0A=
			return undefined;=0A=
		}=0A=
=0A=
		var isFunction =3D jQuery.isFunction( value );=0A=
=0A=
		return this.each(function( i ) {=0A=
			var self =3D jQuery(this), val;=0A=
=0A=
			if ( this.nodeType !=3D=3D 1 ) {=0A=
				return;=0A=
			}=0A=
=0A=
			if ( isFunction ) {=0A=
				val =3D value.call( this, i, self.val() );=0A=
			} else {=0A=
				val =3D value;=0A=
			}=0A=
=0A=
			// Treat null/undefined as ""; convert numbers to string=0A=
			if ( val =3D=3D null ) {=0A=
				val =3D "";=0A=
			} else if ( typeof val =3D=3D=3D "number" ) {=0A=
				val +=3D "";=0A=
			} else if ( jQuery.isArray( val ) ) {=0A=
				val =3D jQuery.map(val, function ( value ) {=0A=
					return value =3D=3D null ? "" : value + "";=0A=
				});=0A=
			}=0A=
=0A=
			hooks =3D jQuery.valHooks[ this.nodeName.toLowerCase() ] || =
jQuery.valHooks[ this.type ];=0A=
=0A=
			// If set returns undefined, fall back to normal setting=0A=
			if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) =
=3D=3D=3D undefined ) {=0A=
				this.value =3D val;=0A=
			}=0A=
		});=0A=
	}=0A=
});=0A=
=0A=
jQuery.extend({=0A=
	valHooks: {=0A=
		option: {=0A=
			get: function( elem ) {=0A=
				// attributes.value is undefined in Blackberry 4.7 but=0A=
				// uses .value. See #6932=0A=
				var val =3D elem.attributes.value;=0A=
				return !val || val.specified ? elem.value : elem.text;=0A=
			}=0A=
		},=0A=
		select: {=0A=
			get: function( elem ) {=0A=
				var value,=0A=
					index =3D elem.selectedIndex,=0A=
					values =3D [],=0A=
					options =3D elem.options,=0A=
					one =3D elem.type =3D=3D=3D "select-one";=0A=
=0A=
				// Nothing was selected=0A=
				if ( index < 0 ) {=0A=
					return null;=0A=
				}=0A=
=0A=
				// Loop through all the selected options=0A=
				for ( var i =3D one ? index : 0, max =3D one ? index + 1 : =
options.length; i < max; i++ ) {=0A=
					var option =3D options[ i ];=0A=
=0A=
					// Don't return options that are disabled or in a disabled optgroup=0A=
					if ( option.selected && (jQuery.support.optDisabled ? =
!option.disabled : option.getAttribute("disabled") =3D=3D=3D null) &&=0A=
							(!option.parentNode.disabled || !jQuery.nodeName( =
option.parentNode, "optgroup" )) ) {=0A=
=0A=
						// Get the specific value for the option=0A=
						value =3D jQuery( option ).val();=0A=
=0A=
						// We don't need an array for one selects=0A=
						if ( one ) {=0A=
							return value;=0A=
						}=0A=
=0A=
						// Multi-Selects return an array=0A=
						values.push( value );=0A=
					}=0A=
				}=0A=
=0A=
				// Fixes Bug #2551 -- select.val() broken in IE after form.reset()=0A=
				if ( one && !values.length && options.length ) {=0A=
					return jQuery( options[ index ] ).val();=0A=
				}=0A=
=0A=
				return values;=0A=
			},=0A=
=0A=
			set: function( elem, value ) {=0A=
				var values =3D jQuery.makeArray( value );=0A=
=0A=
				jQuery(elem).find("option").each(function() {=0A=
					this.selected =3D jQuery.inArray( jQuery(this).val(), values ) >=3D =
0;=0A=
				});=0A=
=0A=
				if ( !values.length ) {=0A=
					elem.selectedIndex =3D -1;=0A=
				}=0A=
				return values;=0A=
			}=0A=
		}=0A=
	},=0A=
=0A=
	attrFn: {=0A=
		val: true,=0A=
		css: true,=0A=
		html: true,=0A=
		text: true,=0A=
		data: true,=0A=
		width: true,=0A=
		height: true,=0A=
		offset: true=0A=
	},=0A=
	=0A=
	attrFix: {=0A=
		// Always normalize to ensure hook usage=0A=
		tabindex: "tabIndex"=0A=
	},=0A=
	=0A=
	attr: function( elem, name, value, pass ) {=0A=
		var nType =3D elem.nodeType;=0A=
		=0A=
		// don't get/set attributes on text, comment and attribute nodes=0A=
		if ( !elem || nType =3D=3D=3D 3 || nType =3D=3D=3D 8 || nType =
=3D=3D=3D 2 ) {=0A=
			return undefined;=0A=
		}=0A=
=0A=
		if ( pass && name in jQuery.attrFn ) {=0A=
			return jQuery( elem )[ name ]( value );=0A=
		}=0A=
=0A=
		// Fallback to prop when attributes are not supported=0A=
		if ( !("getAttribute" in elem) ) {=0A=
			return jQuery.prop( elem, name, value );=0A=
		}=0A=
=0A=
		var ret, hooks,=0A=
			notxml =3D nType !=3D=3D 1 || !jQuery.isXMLDoc( elem );=0A=
=0A=
		// Normalize the name if needed=0A=
		name =3D notxml && jQuery.attrFix[ name ] || name;=0A=
=0A=
		hooks =3D jQuery.attrHooks[ name ];=0A=
=0A=
		if ( !hooks ) {=0A=
			// Use boolHook for boolean attributes=0A=
			if ( rboolean.test( name ) &&=0A=
				(typeof value =3D=3D=3D "boolean" || value =3D=3D=3D undefined || =
value.toLowerCase() =3D=3D=3D name.toLowerCase()) ) {=0A=
=0A=
				hooks =3D boolHook;=0A=
=0A=
			// Use formHook for forms and if the name contains certain characters=0A=
			} else if ( formHook && (jQuery.nodeName( elem, "form" ) || =
rinvalidChar.test( name )) ) {=0A=
				hooks =3D formHook;=0A=
			}=0A=
		}=0A=
=0A=
		if ( value !=3D=3D undefined ) {=0A=
=0A=
			if ( value =3D=3D=3D null ) {=0A=
				jQuery.removeAttr( elem, name );=0A=
				return undefined;=0A=
=0A=
			} else if ( hooks && "set" in hooks && notxml && (ret =3D hooks.set( =
elem, value, name )) !=3D=3D undefined ) {=0A=
				return ret;=0A=
=0A=
			} else {=0A=
				elem.setAttribute( name, "" + value );=0A=
				return value;=0A=
			}=0A=
=0A=
		} else if ( hooks && "get" in hooks && notxml ) {=0A=
			return hooks.get( elem, name );=0A=
=0A=
		} else {=0A=
=0A=
			ret =3D elem.getAttribute( name );=0A=
=0A=
			// Non-existent attributes return null, we normalize to undefined=0A=
			return ret =3D=3D=3D null ?=0A=
				undefined :=0A=
				ret;=0A=
		}=0A=
	},=0A=
=0A=
	removeAttr: function( elem, name ) {=0A=
		var propName;=0A=
		if ( elem.nodeType =3D=3D=3D 1 ) {=0A=
			name =3D jQuery.attrFix[ name ] || name;=0A=
		=0A=
			if ( jQuery.support.getSetAttribute ) {=0A=
				// Use removeAttribute in browsers that support it=0A=
				elem.removeAttribute( name );=0A=
			} else {=0A=
				jQuery.attr( elem, name, "" );=0A=
				elem.removeAttributeNode( elem.getAttributeNode( name ) );=0A=
			}=0A=
=0A=
			// Set corresponding property to false for boolean attributes=0A=
			if ( rboolean.test( name ) && (propName =3D jQuery.propFix[ name ] || =
name) in elem ) {=0A=
				elem[ propName ] =3D false;=0A=
			}=0A=
		}=0A=
	},=0A=
=0A=
	attrHooks: {=0A=
		type: {=0A=
			set: function( elem, value ) {=0A=
				// We can't allow the type property to be changed (since it causes =
problems in IE)=0A=
				if ( rtype.test( elem.nodeName ) && elem.parentNode ) {=0A=
					jQuery.error( "type property can't be changed" );=0A=
				} else if ( !jQuery.support.radioValue && value =3D=3D=3D "radio" && =
jQuery.nodeName(elem, "input") ) {=0A=
					// Setting the type on a radio button after the value resets the =
value in IE6-9=0A=
					// Reset value to it's default in case type is set after value=0A=
					// This is for element creation=0A=
					var val =3D elem.value;=0A=
					elem.setAttribute( "type", value );=0A=
					if ( val ) {=0A=
						elem.value =3D val;=0A=
					}=0A=
					return value;=0A=
				}=0A=
			}=0A=
		},=0A=
		tabIndex: {=0A=
			get: function( elem ) {=0A=
				// elem.tabIndex doesn't always return the correct value when it =
hasn't been explicitly set=0A=
				// =
http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabi=
ndex-values-with-javascript/=0A=
				var attributeNode =3D elem.getAttributeNode("tabIndex");=0A=
=0A=
				return attributeNode && attributeNode.specified ?=0A=
					parseInt( attributeNode.value, 10 ) :=0A=
					rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName =
) && elem.href ?=0A=
						0 :=0A=
						undefined;=0A=
			}=0A=
		}=0A=
	},=0A=
=0A=
	propFix: {=0A=
		tabindex: "tabIndex",=0A=
		readonly: "readOnly",=0A=
		"for": "htmlFor",=0A=
		"class": "className",=0A=
		maxlength: "maxLength",=0A=
		cellspacing: "cellSpacing",=0A=
		cellpadding: "cellPadding",=0A=
		rowspan: "rowSpan",=0A=
		colspan: "colSpan",=0A=
		usemap: "useMap",=0A=
		frameborder: "frameBorder",=0A=
		contenteditable: "contentEditable"=0A=
	},=0A=
	=0A=
	prop: function( elem, name, value ) {=0A=
		var nType =3D elem.nodeType;=0A=
=0A=
		// don't get/set properties on text, comment and attribute nodes=0A=
		if ( !elem || nType =3D=3D=3D 3 || nType =3D=3D=3D 8 || nType =
=3D=3D=3D 2 ) {=0A=
			return undefined;=0A=
		}=0A=
=0A=
		var ret, hooks,=0A=
			notxml =3D nType !=3D=3D 1 || !jQuery.isXMLDoc( elem );=0A=
=0A=
		// Try to normalize/fix the name=0A=
		name =3D notxml && jQuery.propFix[ name ] || name;=0A=
		=0A=
		hooks =3D jQuery.propHooks[ name ];=0A=
=0A=
		if ( value !=3D=3D undefined ) {=0A=
			if ( hooks && "set" in hooks && (ret =3D hooks.set( elem, value, name =
)) !=3D=3D undefined ) {=0A=
				return ret;=0A=
=0A=
			} else {=0A=
				return (elem[ name ] =3D value);=0A=
			}=0A=
=0A=
		} else {=0A=
			if ( hooks && "get" in hooks && (ret =3D hooks.get( elem, name )) =
!=3D=3D undefined ) {=0A=
				return ret;=0A=
=0A=
			} else {=0A=
				return elem[ name ];=0A=
			}=0A=
		}=0A=
	},=0A=
	=0A=
	propHooks: {}=0A=
});=0A=
=0A=
// Hook for boolean attributes=0A=
boolHook =3D {=0A=
	get: function( elem, name ) {=0A=
		// Align boolean attributes with corresponding properties=0A=
		return elem[ jQuery.propFix[ name ] || name ] ?=0A=
			name.toLowerCase() :=0A=
			undefined;=0A=
	},=0A=
	set: function( elem, value, name ) {=0A=
		var propName;=0A=
		if ( value =3D=3D=3D false ) {=0A=
			// Remove boolean attributes when set to false=0A=
			jQuery.removeAttr( elem, name );=0A=
		} else {=0A=
			// value is true since we know at this point it's type boolean and =
not false=0A=
			// Set boolean attributes to the same name and set the DOM property=0A=
			propName =3D jQuery.propFix[ name ] || name;=0A=
			if ( propName in elem ) {=0A=
				// Only set the IDL specifically if it already exists on the element=0A=
				elem[ propName ] =3D value;=0A=
			}=0A=
=0A=
			elem.setAttribute( name, name.toLowerCase() );=0A=
		}=0A=
		return name;=0A=
	}=0A=
};=0A=
=0A=
// Use the value property for back compat=0A=
// Use the formHook for button elements in IE6/7 (#1954)=0A=
jQuery.attrHooks.value =3D {=0A=
	get: function( elem, name ) {=0A=
		if ( formHook && jQuery.nodeName( elem, "button" ) ) {=0A=
			return formHook.get( elem, name );=0A=
		}=0A=
		return elem.value;=0A=
	},=0A=
	set: function( elem, value, name ) {=0A=
		if ( formHook && jQuery.nodeName( elem, "button" ) ) {=0A=
			return formHook.set( elem, value, name );=0A=
		}=0A=
		// Does not return so that setAttribute is also used=0A=
		elem.value =3D value;=0A=
	}=0A=
};=0A=
=0A=
// IE6/7 do not support getting/setting some attributes with =
get/setAttribute=0A=
if ( !jQuery.support.getSetAttribute ) {=0A=
=0A=
	// propFix is more comprehensive and contains all fixes=0A=
	jQuery.attrFix =3D jQuery.propFix;=0A=
	=0A=
	// Use this for any attribute on a form in IE6/7=0A=
	formHook =3D jQuery.attrHooks.name =3D jQuery.valHooks.button =3D {=0A=
		get: function( elem, name ) {=0A=
			var ret;=0A=
			ret =3D elem.getAttributeNode( name );=0A=
			// Return undefined if nodeValue is empty string=0A=
			return ret && ret.nodeValue !=3D=3D "" ?=0A=
				ret.nodeValue :=0A=
				undefined;=0A=
		},=0A=
		set: function( elem, value, name ) {=0A=
			// Check form objects in IE (multiple bugs related)=0A=
			// Only use nodeValue if the attribute node exists on the form=0A=
			var ret =3D elem.getAttributeNode( name );=0A=
			if ( ret ) {=0A=
				ret.nodeValue =3D value;=0A=
				return value;=0A=
			}=0A=
		}=0A=
	};=0A=
=0A=
	// Set width and height to auto instead of 0 on empty string( Bug #8150 =
)=0A=
	// This is for removals=0A=
	jQuery.each([ "width", "height" ], function( i, name ) {=0A=
		jQuery.attrHooks[ name ] =3D jQuery.extend( jQuery.attrHooks[ name ], {=0A=
			set: function( elem, value ) {=0A=
				if ( value =3D=3D=3D "" ) {=0A=
					elem.setAttribute( name, "auto" );=0A=
					return value;=0A=
				}=0A=
			}=0A=
		});=0A=
	});=0A=
}=0A=
=0A=
=0A=
// Some attributes require a special call on IE=0A=
if ( !jQuery.support.hrefNormalized ) {=0A=
	jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {=0A=
		jQuery.attrHooks[ name ] =3D jQuery.extend( jQuery.attrHooks[ name ], {=0A=
			get: function( elem ) {=0A=
				var ret =3D elem.getAttribute( name, 2 );=0A=
				return ret =3D=3D=3D null ? undefined : ret;=0A=
			}=0A=
		});=0A=
	});=0A=
}=0A=
=0A=
if ( !jQuery.support.style ) {=0A=
	jQuery.attrHooks.style =3D {=0A=
		get: function( elem ) {=0A=
			// Return undefined in the case of empty string=0A=
			// Normalize to lowercase since IE uppercases css property names=0A=
			return elem.style.cssText.toLowerCase() || undefined;=0A=
		},=0A=
		set: function( elem, value ) {=0A=
			return (elem.style.cssText =3D "" + value);=0A=
		}=0A=
	};=0A=
}=0A=
=0A=
// Safari mis-reports the default selected property of an option=0A=
// Accessing the parent's selectedIndex property fixes it=0A=
if ( !jQuery.support.optSelected ) {=0A=
	jQuery.propHooks.selected =3D jQuery.extend( jQuery.propHooks.selected, =
{=0A=
		get: function( elem ) {=0A=
			var parent =3D elem.parentNode;=0A=
=0A=
			if ( parent ) {=0A=
				parent.selectedIndex;=0A=
=0A=
				// Make sure that it also works with optgroups, see #5701=0A=
				if ( parent.parentNode ) {=0A=
					parent.parentNode.selectedIndex;=0A=
				}=0A=
			}=0A=
		}=0A=
	});=0A=
}=0A=
=0A=
// Radios and checkboxes getter/setter=0A=
if ( !jQuery.support.checkOn ) {=0A=
	jQuery.each([ "radio", "checkbox" ], function() {=0A=
		jQuery.valHooks[ this ] =3D {=0A=
			get: function( elem ) {=0A=
				// Handle the case where in Webkit "" is returned instead of "on" if =
a value isn't specified=0A=
				return elem.getAttribute("value") =3D=3D=3D null ? "on" : elem.value;=0A=
			}=0A=
		};=0A=
	});=0A=
}=0A=
jQuery.each([ "radio", "checkbox" ], function() {=0A=
	jQuery.valHooks[ this ] =3D jQuery.extend( jQuery.valHooks[ this ], {=0A=
		set: function( elem, value ) {=0A=
			if ( jQuery.isArray( value ) ) {=0A=
				return (elem.checked =3D jQuery.inArray( jQuery(elem).val(), value ) =
>=3D 0);=0A=
			}=0A=
		}=0A=
	});=0A=
});=0A=
=0A=
=0A=
=0A=
=0A=
var hasOwn =3D Object.prototype.hasOwnProperty,=0A=
	rnamespaces =3D /\.(.*)$/,=0A=
	rformElems =3D /^(?:textarea|input|select)$/i,=0A=
	rperiod =3D /\./g,=0A=
	rspaces =3D / /g,=0A=
	rescape =3D /[^\w\s.|`]/g,=0A=
	fcleanup =3D function( nm ) {=0A=
		return nm.replace(rescape, "\\$&");=0A=
	};=0A=
=0A=
/*=0A=
 * A number of helper functions used for managing events.=0A=
 * Many of the ideas behind this code originated from=0A=
 * Dean Edwards' addEvent library.=0A=
 */=0A=
jQuery.event =3D {=0A=
=0A=
	// Bind an event to an element=0A=
	// Original by Dean Edwards=0A=
	add: function( elem, types, handler, data ) {=0A=
		if ( elem.nodeType =3D=3D=3D 3 || elem.nodeType =3D=3D=3D 8 ) {=0A=
			return;=0A=
		}=0A=
=0A=
		if ( handler =3D=3D=3D false ) {=0A=
			handler =3D returnFalse;=0A=
		} else if ( !handler ) {=0A=
			// Fixes bug #7229. Fix recommended by jdalton=0A=
			return;=0A=
		}=0A=
=0A=
		var handleObjIn, handleObj;=0A=
=0A=
		if ( handler.handler ) {=0A=
			handleObjIn =3D handler;=0A=
			handler =3D handleObjIn.handler;=0A=
		}=0A=
=0A=
		// Make sure that the function being executed has a unique ID=0A=
		if ( !handler.guid ) {=0A=
			handler.guid =3D jQuery.guid++;=0A=
		}=0A=
=0A=
		// Init the element's event structure=0A=
		var elemData =3D jQuery._data( elem );=0A=
=0A=
		// If no elemData is found then we must be trying to bind to one of the=0A=
		// banned noData elements=0A=
		if ( !elemData ) {=0A=
			return;=0A=
		}=0A=
=0A=
		var events =3D elemData.events,=0A=
			eventHandle =3D elemData.handle;=0A=
=0A=
		if ( !events ) {=0A=
			elemData.events =3D events =3D {};=0A=
		}=0A=
=0A=
		if ( !eventHandle ) {=0A=
			elemData.handle =3D eventHandle =3D function( e ) {=0A=
				// Discard the second event of a jQuery.event.trigger() and=0A=
				// when an event is called after a page has unloaded=0A=
				return typeof jQuery !=3D=3D "undefined" && (!e || =
jQuery.event.triggered !=3D=3D e.type) ?=0A=
					jQuery.event.handle.apply( eventHandle.elem, arguments ) :=0A=
					undefined;=0A=
			};=0A=
		}=0A=
=0A=
		// Add elem as a property of the handle function=0A=
		// This is to prevent a memory leak with non-native events in IE.=0A=
		eventHandle.elem =3D elem;=0A=
=0A=
		// Handle multiple events separated by a space=0A=
		// jQuery(...).bind("mouseover mouseout", fn);=0A=
		types =3D types.split(" ");=0A=
=0A=
		var type, i =3D 0, namespaces;=0A=
=0A=
		while ( (type =3D types[ i++ ]) ) {=0A=
			handleObj =3D handleObjIn ?=0A=
				jQuery.extend({}, handleObjIn) :=0A=
				{ handler: handler, data: data };=0A=
=0A=
			// Namespaced event handlers=0A=
			if ( type.indexOf(".") > -1 ) {=0A=
				namespaces =3D type.split(".");=0A=
				type =3D namespaces.shift();=0A=
				handleObj.namespace =3D namespaces.slice(0).sort().join(".");=0A=
=0A=
			} else {=0A=
				namespaces =3D [];=0A=
				handleObj.namespace =3D "";=0A=
			}=0A=
=0A=
			handleObj.type =3D type;=0A=
			if ( !handleObj.guid ) {=0A=
				handleObj.guid =3D handler.guid;=0A=
			}=0A=
=0A=
			// Get the current list of functions bound to this event=0A=
			var handlers =3D events[ type ],=0A=
				special =3D jQuery.event.special[ type ] || {};=0A=
=0A=
			// Init the event handler queue=0A=
			if ( !handlers ) {=0A=
				handlers =3D events[ type ] =3D [];=0A=
=0A=
				// Check for a special event handler=0A=
				// Only use addEventListener/attachEvent if the special=0A=
				// events handler returns false=0A=
				if ( !special.setup || special.setup.call( elem, data, namespaces, =
eventHandle ) =3D=3D=3D false ) {=0A=
					// Bind the global event handler to the element=0A=
					if ( elem.addEventListener ) {=0A=
						elem.addEventListener( type, eventHandle, false );=0A=
=0A=
					} else if ( elem.attachEvent ) {=0A=
						elem.attachEvent( "on" + type, eventHandle );=0A=
					}=0A=
				}=0A=
			}=0A=
=0A=
			if ( special.add ) {=0A=
				special.add.call( elem, handleObj );=0A=
=0A=
				if ( !handleObj.handler.guid ) {=0A=
					handleObj.handler.guid =3D handler.guid;=0A=
				}=0A=
			}=0A=
=0A=
			// Add the function to the element's handler list=0A=
			handlers.push( handleObj );=0A=
=0A=
			// Keep track of which events have been used, for event optimization=0A=
			jQuery.event.global[ type ] =3D true;=0A=
		}=0A=
=0A=
		// Nullify elem to prevent memory leaks in IE=0A=
		elem =3D null;=0A=
	},=0A=
=0A=
	global: {},=0A=
=0A=
	// Detach an event or set of events from an element=0A=
	remove: function( elem, types, handler, pos ) {=0A=
		// don't do events on text and comment nodes=0A=
		if ( elem.nodeType =3D=3D=3D 3 || elem.nodeType =3D=3D=3D 8 ) {=0A=
			return;=0A=
		}=0A=
=0A=
		if ( handler =3D=3D=3D false ) {=0A=
			handler =3D returnFalse;=0A=
		}=0A=
=0A=
		var ret, type, fn, j, i =3D 0, all, namespaces, namespace, special, =
eventType, handleObj, origType,=0A=
			elemData =3D jQuery.hasData( elem ) && jQuery._data( elem ),=0A=
			events =3D elemData && elemData.events;=0A=
=0A=
		if ( !elemData || !events ) {=0A=
			return;=0A=
		}=0A=
=0A=
		// types is actually an event object here=0A=
		if ( types && types.type ) {=0A=
			handler =3D types.handler;=0A=
			types =3D types.type;=0A=
		}=0A=
=0A=
		// Unbind all events for the element=0A=
		if ( !types || typeof types =3D=3D=3D "string" && types.charAt(0) =
=3D=3D=3D "." ) {=0A=
			types =3D types || "";=0A=
=0A=
			for ( type in events ) {=0A=
				jQuery.event.remove( elem, type + types );=0A=
			}=0A=
=0A=
			return;=0A=
		}=0A=
=0A=
		// Handle multiple events separated by a space=0A=
		// jQuery(...).unbind("mouseover mouseout", fn);=0A=
		types =3D types.split(" ");=0A=
=0A=
		while ( (type =3D types[ i++ ]) ) {=0A=
			origType =3D type;=0A=
			handleObj =3D null;=0A=
			all =3D type.indexOf(".") < 0;=0A=
			namespaces =3D [];=0A=
=0A=
			if ( !all ) {=0A=
				// Namespaced event handlers=0A=
				namespaces =3D type.split(".");=0A=
				type =3D namespaces.shift();=0A=
=0A=
				namespace =3D new RegExp("(^|\\.)" +=0A=
					jQuery.map( namespaces.slice(0).sort(), fcleanup =
).join("\\.(?:.*\\.)?") + "(\\.|$)");=0A=
			}=0A=
=0A=
			eventType =3D events[ type ];=0A=
=0A=
			if ( !eventType ) {=0A=
				continue;=0A=
			}=0A=
=0A=
			if ( !handler ) {=0A=
				for ( j =3D 0; j < eventType.length; j++ ) {=0A=
					handleObj =3D eventType[ j ];=0A=
=0A=
					if ( all || namespace.test( handleObj.namespace ) ) {=0A=
						jQuery.event.remove( elem, origType, handleObj.handler, j );=0A=
						eventType.splice( j--, 1 );=0A=
					}=0A=
				}=0A=
=0A=
				continue;=0A=
			}=0A=
=0A=
			special =3D jQuery.event.special[ type ] || {};=0A=
=0A=
			for ( j =3D pos || 0; j < eventType.length; j++ ) {=0A=
				handleObj =3D eventType[ j ];=0A=
=0A=
				if ( handler.guid =3D=3D=3D handleObj.guid ) {=0A=
					// remove the given handler for the given type=0A=
					if ( all || namespace.test( handleObj.namespace ) ) {=0A=
						if ( pos =3D=3D null ) {=0A=
							eventType.splice( j--, 1 );=0A=
						}=0A=
=0A=
						if ( special.remove ) {=0A=
							special.remove.call( elem, handleObj );=0A=
						}=0A=
					}=0A=
=0A=
					if ( pos !=3D null ) {=0A=
						break;=0A=
					}=0A=
				}=0A=
			}=0A=
=0A=
			// remove generic event handler if no more handlers exist=0A=
			if ( eventType.length =3D=3D=3D 0 || pos !=3D null && =
eventType.length =3D=3D=3D 1 ) {=0A=
				if ( !special.teardown || special.teardown.call( elem, namespaces ) =
=3D=3D=3D false ) {=0A=
					jQuery.removeEvent( elem, type, elemData.handle );=0A=
				}=0A=
=0A=
				ret =3D null;=0A=
				delete events[ type ];=0A=
			}=0A=
		}=0A=
=0A=
		// Remove the expando if it's no longer used=0A=
		if ( jQuery.isEmptyObject( events ) ) {=0A=
			var handle =3D elemData.handle;=0A=
			if ( handle ) {=0A=
				handle.elem =3D null;=0A=
			}=0A=
=0A=
			delete elemData.events;=0A=
			delete elemData.handle;=0A=
=0A=
			if ( jQuery.isEmptyObject( elemData ) ) {=0A=
				jQuery.removeData( elem, undefined, true );=0A=
			}=0A=
		}=0A=
	},=0A=
	=0A=
	// Events that are safe to short-circuit if no handlers are attached.=0A=
	// Native DOM events should not be added, they may have inline handlers.=0A=
	customEvent: {=0A=
		"getData": true,=0A=
		"setData": true,=0A=
		"changeData": true=0A=
	},=0A=
=0A=
	trigger: function( event, data, elem, onlyHandlers ) {=0A=
		// Event object or event type=0A=
		var type =3D event.type || event,=0A=
			namespaces =3D [],=0A=
			exclusive;=0A=
=0A=
		if ( type.indexOf("!") >=3D 0 ) {=0A=
			// Exclusive events trigger only for the exact event (no namespaces)=0A=
			type =3D type.slice(0, -1);=0A=
			exclusive =3D true;=0A=
		}=0A=
=0A=
		if ( type.indexOf(".") >=3D 0 ) {=0A=
			// Namespaced trigger; create a regexp to match event type in handle()=0A=
			namespaces =3D type.split(".");=0A=
			type =3D namespaces.shift();=0A=
			namespaces.sort();=0A=
		}=0A=
=0A=
		if ( (!elem || jQuery.event.customEvent[ type ]) && =
!jQuery.event.global[ type ] ) {=0A=
			// No jQuery handlers for this event type, and it can't have inline =
handlers=0A=
			return;=0A=
		}=0A=
=0A=
		// Caller can pass in an Event, Object, or just an event type string=0A=
		event =3D typeof event =3D=3D=3D "object" ?=0A=
			// jQuery.Event object=0A=
			event[ jQuery.expando ] ? event :=0A=
			// Object literal=0A=
			new jQuery.Event( type, event ) :=0A=
			// Just the event type (string)=0A=
			new jQuery.Event( type );=0A=
=0A=
		event.type =3D type;=0A=
		event.exclusive =3D exclusive;=0A=
		event.namespace =3D namespaces.join(".");=0A=
		event.namespace_re =3D new RegExp("(^|\\.)" + =
namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)");=0A=
		=0A=
		// triggerHandler() and global events don't bubble or run the default =
action=0A=
		if ( onlyHandlers || !elem ) {=0A=
			event.preventDefault();=0A=
			event.stopPropagation();=0A=
		}=0A=
=0A=
		// Handle a global trigger=0A=
		if ( !elem ) {=0A=
			// TODO: Stop taunting the data cache; remove global events and =
always attach to document=0A=
			jQuery.each( jQuery.cache, function() {=0A=
				// internalKey variable is just used to make it easier to find=0A=
				// and potentially change this stuff later; currently it just=0A=
				// points to jQuery.expando=0A=
				var internalKey =3D jQuery.expando,=0A=
					internalCache =3D this[ internalKey ];=0A=
				if ( internalCache && internalCache.events && internalCache.events[ =
type ] ) {=0A=
					jQuery.event.trigger( event, data, internalCache.handle.elem );=0A=
				}=0A=
			});=0A=
			return;=0A=
		}=0A=
=0A=
		// Don't do events on text and comment nodes=0A=
		if ( elem.nodeType =3D=3D=3D 3 || elem.nodeType =3D=3D=3D 8 ) {=0A=
			return;=0A=
		}=0A=
=0A=
		// Clean up the event in case it is being reused=0A=
		event.result =3D undefined;=0A=
		event.target =3D elem;=0A=
=0A=
		// Clone any incoming data and prepend the event, creating the handler =
arg list=0A=
		data =3D data ? jQuery.makeArray( data ) : [];=0A=
		data.unshift( event );=0A=
=0A=
		var cur =3D elem,=0A=
			// IE doesn't like method names with a colon (#3533, #8272)=0A=
			ontype =3D type.indexOf(":") < 0 ? "on" + type : "";=0A=
=0A=
		// Fire event on the current element, then bubble up the DOM tree=0A=
		do {=0A=
			var handle =3D jQuery._data( cur, "handle" );=0A=
=0A=
			event.currentTarget =3D cur;=0A=
			if ( handle ) {=0A=
				handle.apply( cur, data );=0A=
			}=0A=
=0A=
			// Trigger an inline bound script=0A=
			if ( ontype && jQuery.acceptData( cur ) && cur[ ontype ] && cur[ =
ontype ].apply( cur, data ) =3D=3D=3D false ) {=0A=
				event.result =3D false;=0A=
				event.preventDefault();=0A=
			}=0A=
=0A=
			// Bubble up to document, then to window=0A=
			cur =3D cur.parentNode || cur.ownerDocument || cur =3D=3D=3D =
event.target.ownerDocument && window;=0A=
		} while ( cur && !event.isPropagationStopped() );=0A=
=0A=
		// If nobody prevented the default action, do it now=0A=
		if ( !event.isDefaultPrevented() ) {=0A=
			var old,=0A=
				special =3D jQuery.event.special[ type ] || {};=0A=
=0A=
			if ( (!special._default || special._default.call( elem.ownerDocument, =
event ) =3D=3D=3D false) &&=0A=
				!(type =3D=3D=3D "click" && jQuery.nodeName( elem, "a" )) && =
jQuery.acceptData( elem ) ) {=0A=
=0A=
				// Call a native DOM method on the target with the same name name as =
the event.=0A=
				// Can't use an .isFunction)() check here because IE6/7 fails that =
test.=0A=
				// IE<9 dies on focus to hidden element (#1486), may want to revisit =
a try/catch.=0A=
				try {=0A=
					if ( ontype && elem[ type ] ) {=0A=
						// Don't re-trigger an onFOO event when we call its FOO() method=0A=
						old =3D elem[ ontype ];=0A=
=0A=
						if ( old ) {=0A=
							elem[ ontype ] =3D null;=0A=
						}=0A=
=0A=
						jQuery.event.triggered =3D type;=0A=
						elem[ type ]();=0A=
					}=0A=
				} catch ( ieError ) {}=0A=
=0A=
				if ( old ) {=0A=
					elem[ ontype ] =3D old;=0A=
				}=0A=
=0A=
				jQuery.event.triggered =3D undefined;=0A=
			}=0A=
		}=0A=
		=0A=
		return event.result;=0A=
	},=0A=
=0A=
	handle: function( event ) {=0A=
		event =3D jQuery.event.fix( event || window.event );=0A=
		// Snapshot the handlers list since a called handler may add/remove =
events.=0A=
		var handlers =3D ((jQuery._data( this, "events" ) || {})[ event.type ] =
|| []).slice(0),=0A=
			run_all =3D !event.exclusive && !event.namespace,=0A=
			args =3D Array.prototype.slice.call( arguments, 0 );=0A=
=0A=
		// Use the fix-ed Event rather than the (read-only) native event=0A=
		args[0] =3D event;=0A=
		event.currentTarget =3D this;=0A=
=0A=
		for ( var j =3D 0, l =3D handlers.length; j < l; j++ ) {=0A=
			var handleObj =3D handlers[ j ];=0A=
=0A=
			// Triggered event must 1) be non-exclusive and have no namespace, or=0A=
			// 2) have namespace(s) a subset or equal to those in the bound event.=0A=
			if ( run_all || event.namespace_re.test( handleObj.namespace ) ) {=0A=
				// Pass in a reference to the handler function itself=0A=
				// So that we can later remove it=0A=
				event.handler =3D handleObj.handler;=0A=
				event.data =3D handleObj.data;=0A=
				event.handleObj =3D handleObj;=0A=
=0A=
				var ret =3D handleObj.handler.apply( this, args );=0A=
=0A=
				if ( ret !=3D=3D undefined ) {=0A=
					event.result =3D ret;=0A=
					if ( ret =3D=3D=3D false ) {=0A=
						event.preventDefault();=0A=
						event.stopPropagation();=0A=
					}=0A=
				}=0A=
=0A=
				if ( event.isImmediatePropagationStopped() ) {=0A=
					break;=0A=
				}=0A=
			}=0A=
		}=0A=
		return event.result;=0A=
	},=0A=
=0A=
	props: "altKey attrChange attrName bubbles button cancelable charCode =
clientX clientY ctrlKey currentTarget data detail eventPhase fromElement =
handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX =
pageY prevValue relatedNode relatedTarget screenX screenY shiftKey =
srcElement target toElement view wheelDelta which".split(" "),=0A=
=0A=
	fix: function( event ) {=0A=
		if ( event[ jQuery.expando ] ) {=0A=
			return event;=0A=
		}=0A=
=0A=
		// store a copy of the original event object=0A=
		// and "clone" to set read-only properties=0A=
		var originalEvent =3D event;=0A=
		event =3D jQuery.Event( originalEvent );=0A=
=0A=
		for ( var i =3D this.props.length, prop; i; ) {=0A=
			prop =3D this.props[ --i ];=0A=
			event[ prop ] =3D originalEvent[ prop ];=0A=
		}=0A=
=0A=
		// Fix target property, if necessary=0A=
		if ( !event.target ) {=0A=
			// Fixes #1925 where srcElement might not be defined either=0A=
			event.target =3D event.srcElement || document;=0A=
		}=0A=
=0A=
		// check if target is a textnode (safari)=0A=
		if ( event.target.nodeType =3D=3D=3D 3 ) {=0A=
			event.target =3D event.target.parentNode;=0A=
		}=0A=
=0A=
		// Add relatedTarget, if necessary=0A=
		if ( !event.relatedTarget && event.fromElement ) {=0A=
			event.relatedTarget =3D event.fromElement =3D=3D=3D event.target ? =
event.toElement : event.fromElement;=0A=
		}=0A=
=0A=
		// Calculate pageX/Y if missing and clientX/Y available=0A=
		if ( event.pageX =3D=3D null && event.clientX !=3D null ) {=0A=
			var eventDocument =3D event.target.ownerDocument || document,=0A=
				doc =3D eventDocument.documentElement,=0A=
				body =3D eventDocument.body;=0A=
=0A=
			event.pageX =3D event.clientX + (doc && doc.scrollLeft || body && =
body.scrollLeft || 0) - (doc && doc.clientLeft || body && =
body.clientLeft || 0);=0A=
			event.pageY =3D event.clientY + (doc && doc.scrollTop  || body && =
body.scrollTop  || 0) - (doc && doc.clientTop  || body && body.clientTop =
 || 0);=0A=
		}=0A=
=0A=
		// Add which for key events=0A=
		if ( event.which =3D=3D null && (event.charCode !=3D null || =
event.keyCode !=3D null) ) {=0A=
			event.which =3D event.charCode !=3D null ? event.charCode : =
event.keyCode;=0A=
		}=0A=
=0A=
		// Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for =
Macs)=0A=
		if ( !event.metaKey && event.ctrlKey ) {=0A=
			event.metaKey =3D event.ctrlKey;=0A=
		}=0A=
=0A=
		// Add which for click: 1 =3D=3D=3D left; 2 =3D=3D=3D middle; 3 =
=3D=3D=3D right=0A=
		// Note: button is not normalized, so don't use it=0A=
		if ( !event.which && event.button !=3D=3D undefined ) {=0A=
			event.which =3D (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( =
event.button & 4 ? 2 : 0 ) ));=0A=
		}=0A=
=0A=
		return event;=0A=
	},=0A=
=0A=
	// Deprecated, use jQuery.guid instead=0A=
	guid: 1E8,=0A=
=0A=
	// Deprecated, use jQuery.proxy instead=0A=
	proxy: jQuery.proxy,=0A=
=0A=
	special: {=0A=
		ready: {=0A=
			// Make sure the ready event is setup=0A=
			setup: jQuery.bindReady,=0A=
			teardown: jQuery.noop=0A=
		},=0A=
=0A=
		live: {=0A=
			add: function( handleObj ) {=0A=
				jQuery.event.add( this,=0A=
					liveConvert( handleObj.origType, handleObj.selector ),=0A=
					jQuery.extend({}, handleObj, {handler: liveHandler, guid: =
handleObj.handler.guid}) );=0A=
			},=0A=
=0A=
			remove: function( handleObj ) {=0A=
				jQuery.event.remove( this, liveConvert( handleObj.origType, =
handleObj.selector ), handleObj );=0A=
			}=0A=
		},=0A=
=0A=
		beforeunload: {=0A=
			setup: function( data, namespaces, eventHandle ) {=0A=
				// We only want to do this special case on windows=0A=
				if ( jQuery.isWindow( this ) ) {=0A=
					this.onbeforeunload =3D eventHandle;=0A=
				}=0A=
			},=0A=
=0A=
			teardown: function( namespaces, eventHandle ) {=0A=
				if ( this.onbeforeunload =3D=3D=3D eventHandle ) {=0A=
					this.onbeforeunload =3D null;=0A=
				}=0A=
			}=0A=
		}=0A=
	}=0A=
};=0A=
=0A=
jQuery.removeEvent =3D document.removeEventListener ?=0A=
	function( elem, type, handle ) {=0A=
		if ( elem.removeEventListener ) {=0A=
			elem.removeEventListener( type, handle, false );=0A=
		}=0A=
	} :=0A=
	function( elem, type, handle ) {=0A=
		if ( elem.detachEvent ) {=0A=
			elem.detachEvent( "on" + type, handle );=0A=
		}=0A=
	};=0A=
=0A=
jQuery.Event =3D function( src, props ) {=0A=
	// Allow instantiation without the 'new' keyword=0A=
	if ( !this.preventDefault ) {=0A=
		return new jQuery.Event( src, props );=0A=
	}=0A=
=0A=
	// Event object=0A=
	if ( src && src.type ) {=0A=
		this.originalEvent =3D src;=0A=
		this.type =3D src.type;=0A=
=0A=
		// Events bubbling up the document may have been marked as prevented=0A=
		// by a handler lower down the tree; reflect the correct value.=0A=
		this.isDefaultPrevented =3D (src.defaultPrevented || src.returnValue =
=3D=3D=3D false ||=0A=
			src.getPreventDefault && src.getPreventDefault()) ? returnTrue : =
returnFalse;=0A=
=0A=
	// Event type=0A=
	} else {=0A=
		this.type =3D src;=0A=
	}=0A=
=0A=
	// Put explicitly provided properties onto the event object=0A=
	if ( props ) {=0A=
		jQuery.extend( this, props );=0A=
	}=0A=
=0A=
	// timeStamp is buggy for some events on Firefox(#3843)=0A=
	// So we won't rely on the native value=0A=
	this.timeStamp =3D jQuery.now();=0A=
=0A=
	// Mark it as fixed=0A=
	this[ jQuery.expando ] =3D true;=0A=
};=0A=
=0A=
function returnFalse() {=0A=
	return false;=0A=
}=0A=
function returnTrue() {=0A=
	return true;=0A=
}=0A=
=0A=
// jQuery.Event is based on DOM3 Events as specified by the ECMAScript =
Language Binding=0A=
// =
http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-bind=
ing.html=0A=
jQuery.Event.prototype =3D {=0A=
	preventDefault: function() {=0A=
		this.isDefaultPrevented =3D returnTrue;=0A=
=0A=
		var e =3D this.originalEvent;=0A=
		if ( !e ) {=0A=
			return;=0A=
		}=0A=
=0A=
		// if preventDefault exists run it on the original event=0A=
		if ( e.preventDefault ) {=0A=
			e.preventDefault();=0A=
=0A=
		// otherwise set the returnValue property of the original event to =
false (IE)=0A=
		} else {=0A=
			e.returnValue =3D false;=0A=
		}=0A=
	},=0A=
	stopPropagation: function() {=0A=
		this.isPropagationStopped =3D returnTrue;=0A=
=0A=
		var e =3D this.originalEvent;=0A=
		if ( !e ) {=0A=
			return;=0A=
		}=0A=
		// if stopPropagation exists run it on the original event=0A=
		if ( e.stopPropagation ) {=0A=
			e.stopPropagation();=0A=
		}=0A=
		// otherwise set the cancelBubble property of the original event to =
true (IE)=0A=
		e.cancelBubble =3D true;=0A=
	},=0A=
	stopImmediatePropagation: function() {=0A=
		this.isImmediatePropagationStopped =3D returnTrue;=0A=
		this.stopPropagation();=0A=
	},=0A=
	isDefaultPrevented: returnFalse,=0A=
	isPropagationStopped: returnFalse,=0A=
	isImmediatePropagationStopped: returnFalse=0A=
};=0A=
=0A=
// Checks if an event happened on an element within another element=0A=
// Used in jQuery.event.special.mouseenter and mouseleave handlers=0A=
var withinElement =3D function( event ) {=0A=
	// Check if mouse(over|out) are still within the same parent element=0A=
	var parent =3D event.relatedTarget;=0A=
=0A=
	// set the correct event type=0A=
	event.type =3D event.data;=0A=
=0A=
	// Firefox sometimes assigns relatedTarget a XUL element=0A=
	// which we cannot access the parentNode property of=0A=
	try {=0A=
=0A=
		// Chrome does something similar, the parentNode property=0A=
		// can be accessed but is null.=0A=
		if ( parent && parent !=3D=3D document && !parent.parentNode ) {=0A=
			return;=0A=
		}=0A=
=0A=
		// Traverse up the tree=0A=
		while ( parent && parent !=3D=3D this ) {=0A=
			parent =3D parent.parentNode;=0A=
		}=0A=
=0A=
		if ( parent !=3D=3D this ) {=0A=
			// handle event if we actually just moused on to a non sub-element=0A=
			jQuery.event.handle.apply( this, arguments );=0A=
		}=0A=
=0A=
	// assuming we've left the element since we most likely mousedover a =
xul element=0A=
	} catch(e) { }=0A=
},=0A=
=0A=
// In case of event delegation, we only need to rename the event.type,=0A=
// liveHandler will take care of the rest.=0A=
delegate =3D function( event ) {=0A=
	event.type =3D event.data;=0A=
	jQuery.event.handle.apply( this, arguments );=0A=
};=0A=
=0A=
// Create mouseenter and mouseleave events=0A=
jQuery.each({=0A=
	mouseenter: "mouseover",=0A=
	mouseleave: "mouseout"=0A=
}, function( orig, fix ) {=0A=
	jQuery.event.special[ orig ] =3D {=0A=
		setup: function( data ) {=0A=
			jQuery.event.add( this, fix, data && data.selector ? delegate : =
withinElement, orig );=0A=
		},=0A=
		teardown: function( data ) {=0A=
			jQuery.event.remove( this, fix, data && data.selector ? delegate : =
withinElement );=0A=
		}=0A=
	};=0A=
});=0A=
=0A=
// submit delegation=0A=
if ( !jQuery.support.submitBubbles ) {=0A=
=0A=
	jQuery.event.special.submit =3D {=0A=
		setup: function( data, namespaces ) {=0A=
			if ( !jQuery.nodeName( this, "form" ) ) {=0A=
				jQuery.event.add(this, "click.specialSubmit", function( e ) {=0A=
					var elem =3D e.target,=0A=
						type =3D elem.type;=0A=
=0A=
					if ( (type =3D=3D=3D "submit" || type =3D=3D=3D "image") && jQuery( =
elem ).closest("form").length ) {=0A=
						trigger( "submit", this, arguments );=0A=
					}=0A=
				});=0A=
=0A=
				jQuery.event.add(this, "keypress.specialSubmit", function( e ) {=0A=
					var elem =3D e.target,=0A=
						type =3D elem.type;=0A=
=0A=
					if ( (type =3D=3D=3D "text" || type =3D=3D=3D "password") && =
jQuery( elem ).closest("form").length && e.keyCode =3D=3D=3D 13 ) {=0A=
						trigger( "submit", this, arguments );=0A=
					}=0A=
				});=0A=
=0A=
			} else {=0A=
				return false;=0A=
			}=0A=
		},=0A=
=0A=
		teardown: function( namespaces ) {=0A=
			jQuery.event.remove( this, ".specialSubmit" );=0A=
		}=0A=
	};=0A=
=0A=
}=0A=
=0A=
// change delegation, happens here so we have bind.=0A=
if ( !jQuery.support.changeBubbles ) {=0A=
=0A=
	var changeFilters,=0A=
=0A=
	getVal =3D function( elem ) {=0A=
		var type =3D elem.type, val =3D elem.value;=0A=
=0A=
		if ( type =3D=3D=3D "radio" || type =3D=3D=3D "checkbox" ) {=0A=
			val =3D elem.checked;=0A=
=0A=
		} else if ( type =3D=3D=3D "select-multiple" ) {=0A=
			val =3D elem.selectedIndex > -1 ?=0A=
				jQuery.map( elem.options, function( elem ) {=0A=
					return elem.selected;=0A=
				}).join("-") :=0A=
				"";=0A=
=0A=
		} else if ( jQuery.nodeName( elem, "select" ) ) {=0A=
			val =3D elem.selectedIndex;=0A=
		}=0A=
=0A=
		return val;=0A=
	},=0A=
=0A=
	testChange =3D function testChange( e ) {=0A=
		var elem =3D e.target, data, val;=0A=
=0A=
		if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) {=0A=
			return;=0A=
		}=0A=
=0A=
		data =3D jQuery._data( elem, "_change_data" );=0A=
		val =3D getVal(elem);=0A=
=0A=
		// the current data will be also retrieved by beforeactivate=0A=
		if ( e.type !=3D=3D "focusout" || elem.type !=3D=3D "radio" ) {=0A=
			jQuery._data( elem, "_change_data", val );=0A=
		}=0A=
=0A=
		if ( data =3D=3D=3D undefined || val =3D=3D=3D data ) {=0A=
			return;=0A=
		}=0A=
=0A=
		if ( data !=3D null || val ) {=0A=
			e.type =3D "change";=0A=
			e.liveFired =3D undefined;=0A=
			jQuery.event.trigger( e, arguments[1], elem );=0A=
		}=0A=
	};=0A=
=0A=
	jQuery.event.special.change =3D {=0A=
		filters: {=0A=
			focusout: testChange,=0A=
=0A=
			beforedeactivate: testChange,=0A=
=0A=
			click: function( e ) {=0A=
				var elem =3D e.target, type =3D jQuery.nodeName( elem, "input" ) ? =
elem.type : "";=0A=
=0A=
				if ( type =3D=3D=3D "radio" || type =3D=3D=3D "checkbox" || =
jQuery.nodeName( elem, "select" ) ) {=0A=
					testChange.call( this, e );=0A=
				}=0A=
			},=0A=
=0A=
			// Change has to be called before submit=0A=
			// Keydown will be called before keypress, which is used in =
submit-event delegation=0A=
			keydown: function( e ) {=0A=
				var elem =3D e.target, type =3D jQuery.nodeName( elem, "input" ) ? =
elem.type : "";=0A=
=0A=
				if ( (e.keyCode =3D=3D=3D 13 && !jQuery.nodeName( elem, "textarea" ) =
) ||=0A=
					(e.keyCode =3D=3D=3D 32 && (type =3D=3D=3D "checkbox" || type =
=3D=3D=3D "radio")) ||=0A=
					type =3D=3D=3D "select-multiple" ) {=0A=
					testChange.call( this, e );=0A=
				}=0A=
			},=0A=
=0A=
			// Beforeactivate happens also before the previous element is blurred=0A=
			// with this event you can't trigger a change event, but you can store=0A=
			// information=0A=
			beforeactivate: function( e ) {=0A=
				var elem =3D e.target;=0A=
				jQuery._data( elem, "_change_data", getVal(elem) );=0A=
			}=0A=
		},=0A=
=0A=
		setup: function( data, namespaces ) {=0A=
			if ( this.type =3D=3D=3D "file" ) {=0A=
				return false;=0A=
			}=0A=
=0A=
			for ( var type in changeFilters ) {=0A=
				jQuery.event.add( this, type + ".specialChange", changeFilters[type] =
);=0A=
			}=0A=
=0A=
			return rformElems.test( this.nodeName );=0A=
		},=0A=
=0A=
		teardown: function( namespaces ) {=0A=
			jQuery.event.remove( this, ".specialChange" );=0A=
=0A=
			return rformElems.test( this.nodeName );=0A=
		}=0A=
	};=0A=
=0A=
	changeFilters =3D jQuery.event.special.change.filters;=0A=
=0A=
	// Handle when the input is .focus()'d=0A=
	changeFilters.focus =3D changeFilters.beforeactivate;=0A=
}=0A=
=0A=
function trigger( type, elem, args ) {=0A=
	// Piggyback on a donor event to simulate a different one.=0A=
	// Fake originalEvent to avoid donor's stopPropagation, but if the=0A=
	// simulated event prevents default then we do the same on the donor.=0A=
	// Don't pass args or remember liveFired; they apply to the donor event.=0A=
	var event =3D jQuery.extend( {}, args[ 0 ] );=0A=
	event.type =3D type;=0A=
	event.originalEvent =3D {};=0A=
	event.liveFired =3D undefined;=0A=
	jQuery.event.handle.call( elem, event );=0A=
	if ( event.isDefaultPrevented() ) {=0A=
		args[ 0 ].preventDefault();=0A=
	}=0A=
}=0A=
=0A=
// Create "bubbling" focus and blur events=0A=
if ( !jQuery.support.focusinBubbles ) {=0A=
	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix =
) {=0A=
=0A=
		// Attach a single capturing handler while someone wants =
focusin/focusout=0A=
		var attaches =3D 0;=0A=
=0A=
		jQuery.event.special[ fix ] =3D {=0A=
			setup: function() {=0A=
				if ( attaches++ =3D=3D=3D 0 ) {=0A=
					document.addEventListener( orig, handler, true );=0A=
				}=0A=
			},=0A=
			teardown: function() {=0A=
				if ( --attaches =3D=3D=3D 0 ) {=0A=
					document.removeEventListener( orig, handler, true );=0A=
				}=0A=
			}=0A=
		};=0A=
=0A=
		function handler( donor ) {=0A=
			// Donor event is always a native one; fix it and switch its type.=0A=
			// Let focusin/out handler cancel the donor focus/blur event.=0A=
			var e =3D jQuery.event.fix( donor );=0A=
			e.type =3D fix;=0A=
			e.originalEvent =3D {};=0A=
			jQuery.event.trigger( e, null, e.target );=0A=
			if ( e.isDefaultPrevented() ) {=0A=
				donor.preventDefault();=0A=
			}=0A=
		}=0A=
	});=0A=
}=0A=
=0A=
jQuery.each(["bind", "one"], function( i, name ) {=0A=
	jQuery.fn[ name ] =3D function( type, data, fn ) {=0A=
		var handler;=0A=
=0A=
		// Handle object literals=0A=
		if ( typeof type =3D=3D=3D "object" ) {=0A=
			for ( var key in type ) {=0A=
				this[ name ](key, data, type[key], fn);=0A=
			}=0A=
			return this;=0A=
		}=0A=
=0A=
		if ( arguments.length =3D=3D=3D 2 || data =3D=3D=3D false ) {=0A=
			fn =3D data;=0A=
			data =3D undefined;=0A=
		}=0A=
=0A=
		if ( name =3D=3D=3D "one" ) {=0A=
			handler =3D function( event ) {=0A=
				jQuery( this ).unbind( event, handler );=0A=
				return fn.apply( this, arguments );=0A=
			};=0A=
			handler.guid =3D fn.guid || jQuery.guid++;=0A=
		} else {=0A=
			handler =3D fn;=0A=
		}=0A=
=0A=
		if ( type =3D=3D=3D "unload" && name !=3D=3D "one" ) {=0A=
			this.one( type, data, fn );=0A=
=0A=
		} else {=0A=
			for ( var i =3D 0, l =3D this.length; i < l; i++ ) {=0A=
				jQuery.event.add( this[i], type, handler, data );=0A=
			}=0A=
		}=0A=
=0A=
		return this;=0A=
	};=0A=
});=0A=
=0A=
jQuery.fn.extend({=0A=
	unbind: function( type, fn ) {=0A=
		// Handle object literals=0A=
		if ( typeof type =3D=3D=3D "object" && !type.preventDefault ) {=0A=
			for ( var key in type ) {=0A=
				this.unbind(key, type[key]);=0A=
			}=0A=
=0A=
		} else {=0A=
			for ( var i =3D 0, l =3D this.length; i < l; i++ ) {=0A=
				jQuery.event.remove( this[i], type, fn );=0A=
			}=0A=
		}=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	delegate: function( selector, types, data, fn ) {=0A=
		return this.live( types, data, fn, selector );=0A=
	},=0A=
=0A=
	undelegate: function( selector, types, fn ) {=0A=
		if ( arguments.length =3D=3D=3D 0 ) {=0A=
			return this.unbind( "live" );=0A=
=0A=
		} else {=0A=
			return this.die( types, null, fn, selector );=0A=
		}=0A=
	},=0A=
=0A=
	trigger: function( type, data ) {=0A=
		return this.each(function() {=0A=
			jQuery.event.trigger( type, data, this );=0A=
		});=0A=
	},=0A=
=0A=
	triggerHandler: function( type, data ) {=0A=
		if ( this[0] ) {=0A=
			return jQuery.event.trigger( type, data, this[0], true );=0A=
		}=0A=
	},=0A=
=0A=
	toggle: function( fn ) {=0A=
		// Save reference to arguments for access in closure=0A=
		var args =3D arguments,=0A=
			guid =3D fn.guid || jQuery.guid++,=0A=
			i =3D 0,=0A=
			toggler =3D function( event ) {=0A=
				// Figure out which function to execute=0A=
				var lastToggle =3D ( jQuery.data( this, "lastToggle" + fn.guid ) || =
0 ) % i;=0A=
				jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 );=0A=
=0A=
				// Make sure that clicks stop=0A=
				event.preventDefault();=0A=
=0A=
				// and execute the function=0A=
				return args[ lastToggle ].apply( this, arguments ) || false;=0A=
			};=0A=
=0A=
		// link all the functions, so any of them can unbind this click handler=0A=
		toggler.guid =3D guid;=0A=
		while ( i < args.length ) {=0A=
			args[ i++ ].guid =3D guid;=0A=
		}=0A=
=0A=
		return this.click( toggler );=0A=
	},=0A=
=0A=
	hover: function( fnOver, fnOut ) {=0A=
		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );=0A=
	}=0A=
});=0A=
=0A=
var liveMap =3D {=0A=
	focus: "focusin",=0A=
	blur: "focusout",=0A=
	mouseenter: "mouseover",=0A=
	mouseleave: "mouseout"=0A=
};=0A=
=0A=
jQuery.each(["live", "die"], function( i, name ) {=0A=
	jQuery.fn[ name ] =3D function( types, data, fn, origSelector /* =
Internal Use Only */ ) {=0A=
		var type, i =3D 0, match, namespaces, preType,=0A=
			selector =3D origSelector || this.selector,=0A=
			context =3D origSelector ? this : jQuery( this.context );=0A=
=0A=
		if ( typeof types =3D=3D=3D "object" && !types.preventDefault ) {=0A=
			for ( var key in types ) {=0A=
				context[ name ]( key, data, types[key], selector );=0A=
			}=0A=
=0A=
			return this;=0A=
		}=0A=
=0A=
		if ( name =3D=3D=3D "die" && !types &&=0A=
					origSelector && origSelector.charAt(0) =3D=3D=3D "." ) {=0A=
=0A=
			context.unbind( origSelector );=0A=
=0A=
			return this;=0A=
		}=0A=
=0A=
		if ( data =3D=3D=3D false || jQuery.isFunction( data ) ) {=0A=
			fn =3D data || returnFalse;=0A=
			data =3D undefined;=0A=
		}=0A=
=0A=
		types =3D (types || "").split(" ");=0A=
=0A=
		while ( (type =3D types[ i++ ]) !=3D null ) {=0A=
			match =3D rnamespaces.exec( type );=0A=
			namespaces =3D "";=0A=
=0A=
			if ( match )  {=0A=
				namespaces =3D match[0];=0A=
				type =3D type.replace( rnamespaces, "" );=0A=
			}=0A=
=0A=
			if ( type =3D=3D=3D "hover" ) {=0A=
				types.push( "mouseenter" + namespaces, "mouseleave" + namespaces );=0A=
				continue;=0A=
			}=0A=
=0A=
			preType =3D type;=0A=
=0A=
			if ( liveMap[ type ] ) {=0A=
				types.push( liveMap[ type ] + namespaces );=0A=
				type =3D type + namespaces;=0A=
=0A=
			} else {=0A=
				type =3D (liveMap[ type ] || type) + namespaces;=0A=
			}=0A=
=0A=
			if ( name =3D=3D=3D "live" ) {=0A=
				// bind live handler=0A=
				for ( var j =3D 0, l =3D context.length; j < l; j++ ) {=0A=
					jQuery.event.add( context[j], "live." + liveConvert( type, selector =
),=0A=
						{ data: data, selector: selector, handler: fn, origType: type, =
origHandler: fn, preType: preType } );=0A=
				}=0A=
=0A=
			} else {=0A=
				// unbind live handler=0A=
				context.unbind( "live." + liveConvert( type, selector ), fn );=0A=
			}=0A=
		}=0A=
=0A=
		return this;=0A=
	};=0A=
});=0A=
=0A=
function liveHandler( event ) {=0A=
	var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, =
close, namespace, ret,=0A=
		elems =3D [],=0A=
		selectors =3D [],=0A=
		events =3D jQuery._data( this, "events" );=0A=
=0A=
	// Make sure we avoid non-left-click bubbling in Firefox (#3861) and =
disabled elements in IE (#6911)=0A=
	if ( event.liveFired =3D=3D=3D this || !events || !events.live || =
event.target.disabled || event.button && event.type =3D=3D=3D "click" ) {=0A=
		return;=0A=
	}=0A=
=0A=
	if ( event.namespace ) {=0A=
		namespace =3D new RegExp("(^|\\.)" + =
event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)");=0A=
	}=0A=
=0A=
	event.liveFired =3D this;=0A=
=0A=
	var live =3D events.live.slice(0);=0A=
=0A=
	for ( j =3D 0; j < live.length; j++ ) {=0A=
		handleObj =3D live[j];=0A=
=0A=
		if ( handleObj.origType.replace( rnamespaces, "" ) =3D=3D=3D =
event.type ) {=0A=
			selectors.push( handleObj.selector );=0A=
=0A=
		} else {=0A=
			live.splice( j--, 1 );=0A=
		}=0A=
	}=0A=
=0A=
	match =3D jQuery( event.target ).closest( selectors, =
event.currentTarget );=0A=
=0A=
	for ( i =3D 0, l =3D match.length; i < l; i++ ) {=0A=
		close =3D match[i];=0A=
=0A=
		for ( j =3D 0; j < live.length; j++ ) {=0A=
			handleObj =3D live[j];=0A=
=0A=
			if ( close.selector =3D=3D=3D handleObj.selector && (!namespace || =
namespace.test( handleObj.namespace )) && !close.elem.disabled ) {=0A=
				elem =3D close.elem;=0A=
				related =3D null;=0A=
=0A=
				// Those two events require additional checking=0A=
				if ( handleObj.preType =3D=3D=3D "mouseenter" || handleObj.preType =
=3D=3D=3D "mouseleave" ) {=0A=
					event.type =3D handleObj.preType;=0A=
					related =3D jQuery( event.relatedTarget ).closest( =
handleObj.selector )[0];=0A=
=0A=
					// Make sure not to accidentally match a child element with the =
same selector=0A=
					if ( related && jQuery.contains( elem, related ) ) {=0A=
						related =3D elem;=0A=
					}=0A=
				}=0A=
=0A=
				if ( !related || related !=3D=3D elem ) {=0A=
					elems.push({ elem: elem, handleObj: handleObj, level: close.level =
});=0A=
				}=0A=
			}=0A=
		}=0A=
	}=0A=
=0A=
	for ( i =3D 0, l =3D elems.length; i < l; i++ ) {=0A=
		match =3D elems[i];=0A=
=0A=
		if ( maxLevel && match.level > maxLevel ) {=0A=
			break;=0A=
		}=0A=
=0A=
		event.currentTarget =3D match.elem;=0A=
		event.data =3D match.handleObj.data;=0A=
		event.handleObj =3D match.handleObj;=0A=
=0A=
		ret =3D match.handleObj.origHandler.apply( match.elem, arguments );=0A=
=0A=
		if ( ret =3D=3D=3D false || event.isPropagationStopped() ) {=0A=
			maxLevel =3D match.level;=0A=
=0A=
			if ( ret =3D=3D=3D false ) {=0A=
				stop =3D false;=0A=
			}=0A=
			if ( event.isImmediatePropagationStopped() ) {=0A=
				break;=0A=
			}=0A=
		}=0A=
	}=0A=
=0A=
	return stop;=0A=
}=0A=
=0A=
function liveConvert( type, selector ) {=0A=
	return (type && type !=3D=3D "*" ? type + "." : "") + =
selector.replace(rperiod, "`").replace(rspaces, "&");=0A=
}=0A=
=0A=
jQuery.each( ("blur focus focusin focusout load resize scroll unload =
click dblclick " +=0A=
	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " =
+=0A=
	"change select submit keydown keypress keyup error").split(" "), =
function( i, name ) {=0A=
=0A=
	// Handle event binding=0A=
	jQuery.fn[ name ] =3D function( data, fn ) {=0A=
		if ( fn =3D=3D null ) {=0A=
			fn =3D data;=0A=
			data =3D null;=0A=
		}=0A=
=0A=
		return arguments.length > 0 ?=0A=
			this.bind( name, data, fn ) :=0A=
			this.trigger( name );=0A=
	};=0A=
=0A=
	if ( jQuery.attrFn ) {=0A=
		jQuery.attrFn[ name ] =3D true;=0A=
	}=0A=
});=0A=
=0A=
=0A=
=0A=
/*!=0A=
 * Sizzle CSS Selector Engine=0A=
 *  Copyright 2011, The Dojo Foundation=0A=
 *  Released under the MIT, BSD, and GPL Licenses.=0A=
 *  More information: http://sizzlejs.com/=0A=
 */=0A=
(function(){=0A=
=0A=
var chunker =3D =
/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"=
]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,=0A=
	done =3D 0,=0A=
	toString =3D Object.prototype.toString,=0A=
	hasDuplicate =3D false,=0A=
	baseHasDuplicate =3D true,=0A=
	rBackslash =3D /\\/g,=0A=
	rNonWord =3D /\W/;=0A=
=0A=
// Here we check if the JavaScript engine is using some sort of=0A=
// optimization where it does not always call our comparision=0A=
// function. If that is the case, discard the hasDuplicate value.=0A=
//   Thus far that includes Google Chrome.=0A=
[0, 0].sort(function() {=0A=
	baseHasDuplicate =3D false;=0A=
	return 0;=0A=
});=0A=
=0A=
var Sizzle =3D function( selector, context, results, seed ) {=0A=
	results =3D results || [];=0A=
	context =3D context || document;=0A=
=0A=
	var origContext =3D context;=0A=
=0A=
	if ( context.nodeType !=3D=3D 1 && context.nodeType !=3D=3D 9 ) {=0A=
		return [];=0A=
	}=0A=
	=0A=
	if ( !selector || typeof selector !=3D=3D "string" ) {=0A=
		return results;=0A=
	}=0A=
=0A=
	var m, set, checkSet, extra, ret, cur, pop, i,=0A=
		prune =3D true,=0A=
		contextXML =3D Sizzle.isXML( context ),=0A=
		parts =3D [],=0A=
		soFar =3D selector;=0A=
	=0A=
	// Reset the position of the chunker regexp (start from head)=0A=
	do {=0A=
		chunker.exec( "" );=0A=
		m =3D chunker.exec( soFar );=0A=
=0A=
		if ( m ) {=0A=
			soFar =3D m[3];=0A=
		=0A=
			parts.push( m[1] );=0A=
		=0A=
			if ( m[2] ) {=0A=
				extra =3D m[3];=0A=
				break;=0A=
			}=0A=
		}=0A=
	} while ( m );=0A=
=0A=
	if ( parts.length > 1 && origPOS.exec( selector ) ) {=0A=
=0A=
		if ( parts.length =3D=3D=3D 2 && Expr.relative[ parts[0] ] ) {=0A=
			set =3D posProcess( parts[0] + parts[1], context );=0A=
=0A=
		} else {=0A=
			set =3D Expr.relative[ parts[0] ] ?=0A=
				[ context ] :=0A=
				Sizzle( parts.shift(), context );=0A=
=0A=
			while ( parts.length ) {=0A=
				selector =3D parts.shift();=0A=
=0A=
				if ( Expr.relative[ selector ] ) {=0A=
					selector +=3D parts.shift();=0A=
				}=0A=
				=0A=
				set =3D posProcess( selector, set );=0A=
			}=0A=
		}=0A=
=0A=
	} else {=0A=
		// Take a shortcut and set the context if the root selector is an ID=0A=
		// (but not if it'll be faster if the inner selector is an ID)=0A=
		if ( !seed && parts.length > 1 && context.nodeType =3D=3D=3D 9 && =
!contextXML &&=0A=
				Expr.match.ID.test(parts[0]) && =
!Expr.match.ID.test(parts[parts.length - 1]) ) {=0A=
=0A=
			ret =3D Sizzle.find( parts.shift(), context, contextXML );=0A=
			context =3D ret.expr ?=0A=
				Sizzle.filter( ret.expr, ret.set )[0] :=0A=
				ret.set[0];=0A=
		}=0A=
=0A=
		if ( context ) {=0A=
			ret =3D seed ?=0A=
				{ expr: parts.pop(), set: makeArray(seed) } :=0A=
				Sizzle.find( parts.pop(), parts.length =3D=3D=3D 1 && (parts[0] =
=3D=3D=3D "~" || parts[0] =3D=3D=3D "+") && context.parentNode ? =
context.parentNode : context, contextXML );=0A=
=0A=
			set =3D ret.expr ?=0A=
				Sizzle.filter( ret.expr, ret.set ) :=0A=
				ret.set;=0A=
=0A=
			if ( parts.length > 0 ) {=0A=
				checkSet =3D makeArray( set );=0A=
=0A=
			} else {=0A=
				prune =3D false;=0A=
			}=0A=
=0A=
			while ( parts.length ) {=0A=
				cur =3D parts.pop();=0A=
				pop =3D cur;=0A=
=0A=
				if ( !Expr.relative[ cur ] ) {=0A=
					cur =3D "";=0A=
				} else {=0A=
					pop =3D parts.pop();=0A=
				}=0A=
=0A=
				if ( pop =3D=3D null ) {=0A=
					pop =3D context;=0A=
				}=0A=
=0A=
				Expr.relative[ cur ]( checkSet, pop, contextXML );=0A=
			}=0A=
=0A=
		} else {=0A=
			checkSet =3D parts =3D [];=0A=
		}=0A=
	}=0A=
=0A=
	if ( !checkSet ) {=0A=
		checkSet =3D set;=0A=
	}=0A=
=0A=
	if ( !checkSet ) {=0A=
		Sizzle.error( cur || selector );=0A=
	}=0A=
=0A=
	if ( toString.call(checkSet) =3D=3D=3D "[object Array]" ) {=0A=
		if ( !prune ) {=0A=
			results.push.apply( results, checkSet );=0A=
=0A=
		} else if ( context && context.nodeType =3D=3D=3D 1 ) {=0A=
			for ( i =3D 0; checkSet[i] !=3D null; i++ ) {=0A=
				if ( checkSet[i] && (checkSet[i] =3D=3D=3D true || =
checkSet[i].nodeType =3D=3D=3D 1 && Sizzle.contains(context, =
checkSet[i])) ) {=0A=
					results.push( set[i] );=0A=
				}=0A=
			}=0A=
=0A=
		} else {=0A=
			for ( i =3D 0; checkSet[i] !=3D null; i++ ) {=0A=
				if ( checkSet[i] && checkSet[i].nodeType =3D=3D=3D 1 ) {=0A=
					results.push( set[i] );=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
	} else {=0A=
		makeArray( checkSet, results );=0A=
	}=0A=
=0A=
	if ( extra ) {=0A=
		Sizzle( extra, origContext, results, seed );=0A=
		Sizzle.uniqueSort( results );=0A=
	}=0A=
=0A=
	return results;=0A=
};=0A=
=0A=
Sizzle.uniqueSort =3D function( results ) {=0A=
	if ( sortOrder ) {=0A=
		hasDuplicate =3D baseHasDuplicate;=0A=
		results.sort( sortOrder );=0A=
=0A=
		if ( hasDuplicate ) {=0A=
			for ( var i =3D 1; i < results.length; i++ ) {=0A=
				if ( results[i] =3D=3D=3D results[ i - 1 ] ) {=0A=
					results.splice( i--, 1 );=0A=
				}=0A=
			}=0A=
		}=0A=
	}=0A=
=0A=
	return results;=0A=
};=0A=
=0A=
Sizzle.matches =3D function( expr, set ) {=0A=
	return Sizzle( expr, null, null, set );=0A=
};=0A=
=0A=
Sizzle.matchesSelector =3D function( node, expr ) {=0A=
	return Sizzle( expr, null, null, [node] ).length > 0;=0A=
};=0A=
=0A=
Sizzle.find =3D function( expr, context, isXML ) {=0A=
	var set;=0A=
=0A=
	if ( !expr ) {=0A=
		return [];=0A=
	}=0A=
=0A=
	for ( var i =3D 0, l =3D Expr.order.length; i < l; i++ ) {=0A=
		var match,=0A=
			type =3D Expr.order[i];=0A=
		=0A=
		if ( (match =3D Expr.leftMatch[ type ].exec( expr )) ) {=0A=
			var left =3D match[1];=0A=
			match.splice( 1, 1 );=0A=
=0A=
			if ( left.substr( left.length - 1 ) !=3D=3D "\\" ) {=0A=
				match[1] =3D (match[1] || "").replace( rBackslash, "" );=0A=
				set =3D Expr.find[ type ]( match, context, isXML );=0A=
=0A=
				if ( set !=3D null ) {=0A=
					expr =3D expr.replace( Expr.match[ type ], "" );=0A=
					break;=0A=
				}=0A=
			}=0A=
		}=0A=
	}=0A=
=0A=
	if ( !set ) {=0A=
		set =3D typeof context.getElementsByTagName !=3D=3D "undefined" ?=0A=
			context.getElementsByTagName( "*" ) :=0A=
			[];=0A=
	}=0A=
=0A=
	return { set: set, expr: expr };=0A=
};=0A=
=0A=
Sizzle.filter =3D function( expr, set, inplace, not ) {=0A=
	var match, anyFound,=0A=
		old =3D expr,=0A=
		result =3D [],=0A=
		curLoop =3D set,=0A=
		isXMLFilter =3D set && set[0] && Sizzle.isXML( set[0] );=0A=
=0A=
	while ( expr && set.length ) {=0A=
		for ( var type in Expr.filter ) {=0A=
			if ( (match =3D Expr.leftMatch[ type ].exec( expr )) !=3D null && =
match[2] ) {=0A=
				var found, item,=0A=
					filter =3D Expr.filter[ type ],=0A=
					left =3D match[1];=0A=
=0A=
				anyFound =3D false;=0A=
=0A=
				match.splice(1,1);=0A=
=0A=
				if ( left.substr( left.length - 1 ) =3D=3D=3D "\\" ) {=0A=
					continue;=0A=
				}=0A=
=0A=
				if ( curLoop =3D=3D=3D result ) {=0A=
					result =3D [];=0A=
				}=0A=
=0A=
				if ( Expr.preFilter[ type ] ) {=0A=
					match =3D Expr.preFilter[ type ]( match, curLoop, inplace, result, =
not, isXMLFilter );=0A=
=0A=
					if ( !match ) {=0A=
						anyFound =3D found =3D true;=0A=
=0A=
					} else if ( match =3D=3D=3D true ) {=0A=
						continue;=0A=
					}=0A=
				}=0A=
=0A=
				if ( match ) {=0A=
					for ( var i =3D 0; (item =3D curLoop[i]) !=3D null; i++ ) {=0A=
						if ( item ) {=0A=
							found =3D filter( item, match, i, curLoop );=0A=
							var pass =3D not ^ !!found;=0A=
=0A=
							if ( inplace && found !=3D null ) {=0A=
								if ( pass ) {=0A=
									anyFound =3D true;=0A=
=0A=
								} else {=0A=
									curLoop[i] =3D false;=0A=
								}=0A=
=0A=
							} else if ( pass ) {=0A=
								result.push( item );=0A=
								anyFound =3D true;=0A=
							}=0A=
						}=0A=
					}=0A=
				}=0A=
=0A=
				if ( found !=3D=3D undefined ) {=0A=
					if ( !inplace ) {=0A=
						curLoop =3D result;=0A=
					}=0A=
=0A=
					expr =3D expr.replace( Expr.match[ type ], "" );=0A=
=0A=
					if ( !anyFound ) {=0A=
						return [];=0A=
					}=0A=
=0A=
					break;=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		// Improper expression=0A=
		if ( expr =3D=3D=3D old ) {=0A=
			if ( anyFound =3D=3D null ) {=0A=
				Sizzle.error( expr );=0A=
=0A=
			} else {=0A=
				break;=0A=
			}=0A=
		}=0A=
=0A=
		old =3D expr;=0A=
	}=0A=
=0A=
	return curLoop;=0A=
};=0A=
=0A=
Sizzle.error =3D function( msg ) {=0A=
	throw "Syntax error, unrecognized expression: " + msg;=0A=
};=0A=
=0A=
var Expr =3D Sizzle.selectors =3D {=0A=
	order: [ "ID", "NAME", "TAG" ],=0A=
=0A=
	match: {=0A=
		ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,=0A=
		CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,=0A=
		NAME: /\[name=3D['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,=0A=
		ATTR: =
/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=3D)\s*(?:(['"])(.*?)\3|(#?=
(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,=0A=
		TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,=0A=
		CHILD: =
/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)=
?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,=0A=
		POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=3D[^\-]|$)/,=0A=
		PSEUDO: =
/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\=
))?/=0A=
	},=0A=
=0A=
	leftMatch: {},=0A=
=0A=
	attrMap: {=0A=
		"class": "className",=0A=
		"for": "htmlFor"=0A=
	},=0A=
=0A=
	attrHandle: {=0A=
		href: function( elem ) {=0A=
			return elem.getAttribute( "href" );=0A=
		},=0A=
		type: function( elem ) {=0A=
			return elem.getAttribute( "type" );=0A=
		}=0A=
	},=0A=
=0A=
	relative: {=0A=
		"+": function(checkSet, part){=0A=
			var isPartStr =3D typeof part =3D=3D=3D "string",=0A=
				isTag =3D isPartStr && !rNonWord.test( part ),=0A=
				isPartStrNotTag =3D isPartStr && !isTag;=0A=
=0A=
			if ( isTag ) {=0A=
				part =3D part.toLowerCase();=0A=
			}=0A=
=0A=
			for ( var i =3D 0, l =3D checkSet.length, elem; i < l; i++ ) {=0A=
				if ( (elem =3D checkSet[i]) ) {=0A=
					while ( (elem =3D elem.previousSibling) && elem.nodeType !=3D=3D 1 =
) {}=0A=
=0A=
					checkSet[i] =3D isPartStrNotTag || elem && =
elem.nodeName.toLowerCase() =3D=3D=3D part ?=0A=
						elem || false :=0A=
						elem =3D=3D=3D part;=0A=
				}=0A=
			}=0A=
=0A=
			if ( isPartStrNotTag ) {=0A=
				Sizzle.filter( part, checkSet, true );=0A=
			}=0A=
		},=0A=
=0A=
		">": function( checkSet, part ) {=0A=
			var elem,=0A=
				isPartStr =3D typeof part =3D=3D=3D "string",=0A=
				i =3D 0,=0A=
				l =3D checkSet.length;=0A=
=0A=
			if ( isPartStr && !rNonWord.test( part ) ) {=0A=
				part =3D part.toLowerCase();=0A=
=0A=
				for ( ; i < l; i++ ) {=0A=
					elem =3D checkSet[i];=0A=
=0A=
					if ( elem ) {=0A=
						var parent =3D elem.parentNode;=0A=
						checkSet[i] =3D parent.nodeName.toLowerCase() =3D=3D=3D part ? =
parent : false;=0A=
					}=0A=
				}=0A=
=0A=
			} else {=0A=
				for ( ; i < l; i++ ) {=0A=
					elem =3D checkSet[i];=0A=
=0A=
					if ( elem ) {=0A=
						checkSet[i] =3D isPartStr ?=0A=
							elem.parentNode :=0A=
							elem.parentNode =3D=3D=3D part;=0A=
					}=0A=
				}=0A=
=0A=
				if ( isPartStr ) {=0A=
					Sizzle.filter( part, checkSet, true );=0A=
				}=0A=
			}=0A=
		},=0A=
=0A=
		"": function(checkSet, part, isXML){=0A=
			var nodeCheck,=0A=
				doneName =3D done++,=0A=
				checkFn =3D dirCheck;=0A=
=0A=
			if ( typeof part =3D=3D=3D "string" && !rNonWord.test( part ) ) {=0A=
				part =3D part.toLowerCase();=0A=
				nodeCheck =3D part;=0A=
				checkFn =3D dirNodeCheck;=0A=
			}=0A=
=0A=
			checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );=0A=
		},=0A=
=0A=
		"~": function( checkSet, part, isXML ) {=0A=
			var nodeCheck,=0A=
				doneName =3D done++,=0A=
				checkFn =3D dirCheck;=0A=
=0A=
			if ( typeof part =3D=3D=3D "string" && !rNonWord.test( part ) ) {=0A=
				part =3D part.toLowerCase();=0A=
				nodeCheck =3D part;=0A=
				checkFn =3D dirNodeCheck;=0A=
			}=0A=
=0A=
			checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, =
isXML );=0A=
		}=0A=
	},=0A=
=0A=
	find: {=0A=
		ID: function( match, context, isXML ) {=0A=
			if ( typeof context.getElementById !=3D=3D "undefined" && !isXML ) {=0A=
				var m =3D context.getElementById(match[1]);=0A=
				// Check parentNode to catch when Blackberry 4.6 returns=0A=
				// nodes that are no longer in the document #6963=0A=
				return m && m.parentNode ? [m] : [];=0A=
			}=0A=
		},=0A=
=0A=
		NAME: function( match, context ) {=0A=
			if ( typeof context.getElementsByName !=3D=3D "undefined" ) {=0A=
				var ret =3D [],=0A=
					results =3D context.getElementsByName( match[1] );=0A=
=0A=
				for ( var i =3D 0, l =3D results.length; i < l; i++ ) {=0A=
					if ( results[i].getAttribute("name") =3D=3D=3D match[1] ) {=0A=
						ret.push( results[i] );=0A=
					}=0A=
				}=0A=
=0A=
				return ret.length =3D=3D=3D 0 ? null : ret;=0A=
			}=0A=
		},=0A=
=0A=
		TAG: function( match, context ) {=0A=
			if ( typeof context.getElementsByTagName !=3D=3D "undefined" ) {=0A=
				return context.getElementsByTagName( match[1] );=0A=
			}=0A=
		}=0A=
	},=0A=
	preFilter: {=0A=
		CLASS: function( match, curLoop, inplace, result, not, isXML ) {=0A=
			match =3D " " + match[1].replace( rBackslash, "" ) + " ";=0A=
=0A=
			if ( isXML ) {=0A=
				return match;=0A=
			}=0A=
=0A=
			for ( var i =3D 0, elem; (elem =3D curLoop[i]) !=3D null; i++ ) {=0A=
				if ( elem ) {=0A=
					if ( not ^ (elem.className && (" " + elem.className + " =
").replace(/[\t\n\r]/g, " ").indexOf(match) >=3D 0) ) {=0A=
						if ( !inplace ) {=0A=
							result.push( elem );=0A=
						}=0A=
=0A=
					} else if ( inplace ) {=0A=
						curLoop[i] =3D false;=0A=
					}=0A=
				}=0A=
			}=0A=
=0A=
			return false;=0A=
		},=0A=
=0A=
		ID: function( match ) {=0A=
			return match[1].replace( rBackslash, "" );=0A=
		},=0A=
=0A=
		TAG: function( match, curLoop ) {=0A=
			return match[1].replace( rBackslash, "" ).toLowerCase();=0A=
		},=0A=
=0A=
		CHILD: function( match ) {=0A=
			if ( match[1] =3D=3D=3D "nth" ) {=0A=
				if ( !match[2] ) {=0A=
					Sizzle.error( match[0] );=0A=
				}=0A=
=0A=
				match[2] =3D match[2].replace(/^\+|\s*/g, '');=0A=
=0A=
				// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', =
'-n+6'=0A=
				var test =3D /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(=0A=
					match[2] =3D=3D=3D "even" && "2n" || match[2] =3D=3D=3D "odd" && =
"2n+1" ||=0A=
					!/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);=0A=
=0A=
				// calculate the numbers (first)n+(last) including if they are =
negative=0A=
				match[2] =3D (test[1] + (test[2] || 1)) - 0;=0A=
				match[3] =3D test[3] - 0;=0A=
			}=0A=
			else if ( match[2] ) {=0A=
				Sizzle.error( match[0] );=0A=
			}=0A=
=0A=
			// TODO: Move to normal caching system=0A=
			match[0] =3D done++;=0A=
=0A=
			return match;=0A=
		},=0A=
=0A=
		ATTR: function( match, curLoop, inplace, result, not, isXML ) {=0A=
			var name =3D match[1] =3D match[1].replace( rBackslash, "" );=0A=
			=0A=
			if ( !isXML && Expr.attrMap[name] ) {=0A=
				match[1] =3D Expr.attrMap[name];=0A=
			}=0A=
=0A=
			// Handle if an un-quoted value was used=0A=
			match[4] =3D ( match[4] || match[5] || "" ).replace( rBackslash, "" );=0A=
=0A=
			if ( match[2] =3D=3D=3D "~=3D" ) {=0A=
				match[4] =3D " " + match[4] + " ";=0A=
			}=0A=
=0A=
			return match;=0A=
		},=0A=
=0A=
		PSEUDO: function( match, curLoop, inplace, result, not ) {=0A=
			if ( match[1] =3D=3D=3D "not" ) {=0A=
				// If we're dealing with a complex expression, or a simple one=0A=
				if ( ( chunker.exec(match[3]) || "" ).length > 1 || =
/^\w/.test(match[3]) ) {=0A=
					match[3] =3D Sizzle(match[3], null, null, curLoop);=0A=
=0A=
				} else {=0A=
					var ret =3D Sizzle.filter(match[3], curLoop, inplace, true ^ not);=0A=
=0A=
					if ( !inplace ) {=0A=
						result.push.apply( result, ret );=0A=
					}=0A=
=0A=
					return false;=0A=
				}=0A=
=0A=
			} else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( =
match[0] ) ) {=0A=
				return true;=0A=
			}=0A=
			=0A=
			return match;=0A=
		},=0A=
=0A=
		POS: function( match ) {=0A=
			match.unshift( true );=0A=
=0A=
			return match;=0A=
		}=0A=
	},=0A=
	=0A=
	filters: {=0A=
		enabled: function( elem ) {=0A=
			return elem.disabled =3D=3D=3D false && elem.type !=3D=3D "hidden";=0A=
		},=0A=
=0A=
		disabled: function( elem ) {=0A=
			return elem.disabled =3D=3D=3D true;=0A=
		},=0A=
=0A=
		checked: function( elem ) {=0A=
			return elem.checked =3D=3D=3D true;=0A=
		},=0A=
		=0A=
		selected: function( elem ) {=0A=
			// Accessing this property makes selected-by-default=0A=
			// options in Safari work properly=0A=
			if ( elem.parentNode ) {=0A=
				elem.parentNode.selectedIndex;=0A=
			}=0A=
			=0A=
			return elem.selected =3D=3D=3D true;=0A=
		},=0A=
=0A=
		parent: function( elem ) {=0A=
			return !!elem.firstChild;=0A=
		},=0A=
=0A=
		empty: function( elem ) {=0A=
			return !elem.firstChild;=0A=
		},=0A=
=0A=
		has: function( elem, i, match ) {=0A=
			return !!Sizzle( match[3], elem ).length;=0A=
		},=0A=
=0A=
		header: function( elem ) {=0A=
			return (/h\d/i).test( elem.nodeName );=0A=
		},=0A=
=0A=
		text: function( elem ) {=0A=
			var attr =3D elem.getAttribute( "type" ), type =3D elem.type;=0A=
			// IE6 and 7 will map elem.type to 'text' for new HTML5 types =
(search, etc) =0A=
			// use getAttribute instead to test this case=0A=
			return elem.nodeName.toLowerCase() =3D=3D=3D "input" && "text" =
=3D=3D=3D type && ( attr =3D=3D=3D type || attr =3D=3D=3D null );=0A=
		},=0A=
=0A=
		radio: function( elem ) {=0A=
			return elem.nodeName.toLowerCase() =3D=3D=3D "input" && "radio" =
=3D=3D=3D elem.type;=0A=
		},=0A=
=0A=
		checkbox: function( elem ) {=0A=
			return elem.nodeName.toLowerCase() =3D=3D=3D "input" && "checkbox" =
=3D=3D=3D elem.type;=0A=
		},=0A=
=0A=
		file: function( elem ) {=0A=
			return elem.nodeName.toLowerCase() =3D=3D=3D "input" && "file" =
=3D=3D=3D elem.type;=0A=
		},=0A=
=0A=
		password: function( elem ) {=0A=
			return elem.nodeName.toLowerCase() =3D=3D=3D "input" && "password" =
=3D=3D=3D elem.type;=0A=
		},=0A=
=0A=
		submit: function( elem ) {=0A=
			var name =3D elem.nodeName.toLowerCase();=0A=
			return (name =3D=3D=3D "input" || name =3D=3D=3D "button") && =
"submit" =3D=3D=3D elem.type;=0A=
		},=0A=
=0A=
		image: function( elem ) {=0A=
			return elem.nodeName.toLowerCase() =3D=3D=3D "input" && "image" =
=3D=3D=3D elem.type;=0A=
		},=0A=
=0A=
		reset: function( elem ) {=0A=
			var name =3D elem.nodeName.toLowerCase();=0A=
			return (name =3D=3D=3D "input" || name =3D=3D=3D "button") && "reset" =
=3D=3D=3D elem.type;=0A=
		},=0A=
=0A=
		button: function( elem ) {=0A=
			var name =3D elem.nodeName.toLowerCase();=0A=
			return name =3D=3D=3D "input" && "button" =3D=3D=3D elem.type || name =
=3D=3D=3D "button";=0A=
		},=0A=
=0A=
		input: function( elem ) {=0A=
			return (/input|select|textarea|button/i).test( elem.nodeName );=0A=
		},=0A=
=0A=
		focus: function( elem ) {=0A=
			return elem =3D=3D=3D elem.ownerDocument.activeElement;=0A=
		}=0A=
	},=0A=
	setFilters: {=0A=
		first: function( elem, i ) {=0A=
			return i =3D=3D=3D 0;=0A=
		},=0A=
=0A=
		last: function( elem, i, match, array ) {=0A=
			return i =3D=3D=3D array.length - 1;=0A=
		},=0A=
=0A=
		even: function( elem, i ) {=0A=
			return i % 2 =3D=3D=3D 0;=0A=
		},=0A=
=0A=
		odd: function( elem, i ) {=0A=
			return i % 2 =3D=3D=3D 1;=0A=
		},=0A=
=0A=
		lt: function( elem, i, match ) {=0A=
			return i < match[3] - 0;=0A=
		},=0A=
=0A=
		gt: function( elem, i, match ) {=0A=
			return i > match[3] - 0;=0A=
		},=0A=
=0A=
		nth: function( elem, i, match ) {=0A=
			return match[3] - 0 =3D=3D=3D i;=0A=
		},=0A=
=0A=
		eq: function( elem, i, match ) {=0A=
			return match[3] - 0 =3D=3D=3D i;=0A=
		}=0A=
	},=0A=
	filter: {=0A=
		PSEUDO: function( elem, match, i, array ) {=0A=
			var name =3D match[1],=0A=
				filter =3D Expr.filters[ name ];=0A=
=0A=
			if ( filter ) {=0A=
				return filter( elem, i, match, array );=0A=
=0A=
			} else if ( name =3D=3D=3D "contains" ) {=0A=
				return (elem.textContent || elem.innerText || Sizzle.getText([ elem =
]) || "").indexOf(match[3]) >=3D 0;=0A=
=0A=
			} else if ( name =3D=3D=3D "not" ) {=0A=
				var not =3D match[3];=0A=
=0A=
				for ( var j =3D 0, l =3D not.length; j < l; j++ ) {=0A=
					if ( not[j] =3D=3D=3D elem ) {=0A=
						return false;=0A=
					}=0A=
				}=0A=
=0A=
				return true;=0A=
=0A=
			} else {=0A=
				Sizzle.error( name );=0A=
			}=0A=
		},=0A=
=0A=
		CHILD: function( elem, match ) {=0A=
			var type =3D match[1],=0A=
				node =3D elem;=0A=
=0A=
			switch ( type ) {=0A=
				case "only":=0A=
				case "first":=0A=
					while ( (node =3D node.previousSibling) )	 {=0A=
						if ( node.nodeType =3D=3D=3D 1 ) { =0A=
							return false; =0A=
						}=0A=
					}=0A=
=0A=
					if ( type =3D=3D=3D "first" ) { =0A=
						return true; =0A=
					}=0A=
=0A=
					node =3D elem;=0A=
=0A=
				case "last":=0A=
					while ( (node =3D node.nextSibling) )	 {=0A=
						if ( node.nodeType =3D=3D=3D 1 ) { =0A=
							return false; =0A=
						}=0A=
					}=0A=
=0A=
					return true;=0A=
=0A=
				case "nth":=0A=
					var first =3D match[2],=0A=
						last =3D match[3];=0A=
=0A=
					if ( first =3D=3D=3D 1 && last =3D=3D=3D 0 ) {=0A=
						return true;=0A=
					}=0A=
					=0A=
					var doneName =3D match[0],=0A=
						parent =3D elem.parentNode;=0A=
	=0A=
					if ( parent && (parent.sizcache !=3D=3D doneName || =
!elem.nodeIndex) ) {=0A=
						var count =3D 0;=0A=
						=0A=
						for ( node =3D parent.firstChild; node; node =3D node.nextSibling =
) {=0A=
							if ( node.nodeType =3D=3D=3D 1 ) {=0A=
								node.nodeIndex =3D ++count;=0A=
							}=0A=
						} =0A=
=0A=
						parent.sizcache =3D doneName;=0A=
					}=0A=
					=0A=
					var diff =3D elem.nodeIndex - last;=0A=
=0A=
					if ( first =3D=3D=3D 0 ) {=0A=
						return diff =3D=3D=3D 0;=0A=
=0A=
					} else {=0A=
						return ( diff % first =3D=3D=3D 0 && diff / first >=3D 0 );=0A=
					}=0A=
			}=0A=
		},=0A=
=0A=
		ID: function( elem, match ) {=0A=
			return elem.nodeType =3D=3D=3D 1 && elem.getAttribute("id") =3D=3D=3D =
match;=0A=
		},=0A=
=0A=
		TAG: function( elem, match ) {=0A=
			return (match =3D=3D=3D "*" && elem.nodeType =3D=3D=3D 1) || =
elem.nodeName.toLowerCase() =3D=3D=3D match;=0A=
		},=0A=
		=0A=
		CLASS: function( elem, match ) {=0A=
			return (" " + (elem.className || elem.getAttribute("class")) + " ")=0A=
				.indexOf( match ) > -1;=0A=
		},=0A=
=0A=
		ATTR: function( elem, match ) {=0A=
			var name =3D match[1],=0A=
				result =3D Expr.attrHandle[ name ] ?=0A=
					Expr.attrHandle[ name ]( elem ) :=0A=
					elem[ name ] !=3D null ?=0A=
						elem[ name ] :=0A=
						elem.getAttribute( name ),=0A=
				value =3D result + "",=0A=
				type =3D match[2],=0A=
				check =3D match[4];=0A=
=0A=
			return result =3D=3D null ?=0A=
				type =3D=3D=3D "!=3D" :=0A=
				type =3D=3D=3D "=3D" ?=0A=
				value =3D=3D=3D check :=0A=
				type =3D=3D=3D "*=3D" ?=0A=
				value.indexOf(check) >=3D 0 :=0A=
				type =3D=3D=3D "~=3D" ?=0A=
				(" " + value + " ").indexOf(check) >=3D 0 :=0A=
				!check ?=0A=
				value && result !=3D=3D false :=0A=
				type =3D=3D=3D "!=3D" ?=0A=
				value !=3D=3D check :=0A=
				type =3D=3D=3D "^=3D" ?=0A=
				value.indexOf(check) =3D=3D=3D 0 :=0A=
				type =3D=3D=3D "$=3D" ?=0A=
				value.substr(value.length - check.length) =3D=3D=3D check :=0A=
				type =3D=3D=3D "|=3D" ?=0A=
				value =3D=3D=3D check || value.substr(0, check.length + 1) =3D=3D=3D =
check + "-" :=0A=
				false;=0A=
		},=0A=
=0A=
		POS: function( elem, match, i, array ) {=0A=
			var name =3D match[2],=0A=
				filter =3D Expr.setFilters[ name ];=0A=
=0A=
			if ( filter ) {=0A=
				return filter( elem, i, match, array );=0A=
			}=0A=
		}=0A=
	}=0A=
};=0A=
=0A=
var origPOS =3D Expr.match.POS,=0A=
	fescape =3D function(all, num){=0A=
		return "\\" + (num - 0 + 1);=0A=
	};=0A=
=0A=
for ( var type in Expr.match ) {=0A=
	Expr.match[ type ] =3D new RegExp( Expr.match[ type ].source + =
(/(?![^\[]*\])(?![^\(]*\))/.source) );=0A=
	Expr.leftMatch[ type ] =3D new RegExp( /(^(?:.|\r|\n)*?)/.source + =
Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );=0A=
}=0A=
=0A=
var makeArray =3D function( array, results ) {=0A=
	array =3D Array.prototype.slice.call( array, 0 );=0A=
=0A=
	if ( results ) {=0A=
		results.push.apply( results, array );=0A=
		return results;=0A=
	}=0A=
	=0A=
	return array;=0A=
};=0A=
=0A=
// Perform a simple check to determine if the browser is capable of=0A=
// converting a NodeList to an array using builtin methods.=0A=
// Also verifies that the returned array holds DOM nodes=0A=
// (which is not the case in the Blackberry browser)=0A=
try {=0A=
	Array.prototype.slice.call( document.documentElement.childNodes, 0 =
)[0].nodeType;=0A=
=0A=
// Provide a fallback method if it does not work=0A=
} catch( e ) {=0A=
	makeArray =3D function( array, results ) {=0A=
		var i =3D 0,=0A=
			ret =3D results || [];=0A=
=0A=
		if ( toString.call(array) =3D=3D=3D "[object Array]" ) {=0A=
			Array.prototype.push.apply( ret, array );=0A=
=0A=
		} else {=0A=
			if ( typeof array.length =3D=3D=3D "number" ) {=0A=
				for ( var l =3D array.length; i < l; i++ ) {=0A=
					ret.push( array[i] );=0A=
				}=0A=
=0A=
			} else {=0A=
				for ( ; array[i]; i++ ) {=0A=
					ret.push( array[i] );=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		return ret;=0A=
	};=0A=
}=0A=
=0A=
var sortOrder, siblingCheck;=0A=
=0A=
if ( document.documentElement.compareDocumentPosition ) {=0A=
	sortOrder =3D function( a, b ) {=0A=
		if ( a =3D=3D=3D b ) {=0A=
			hasDuplicate =3D true;=0A=
			return 0;=0A=
		}=0A=
=0A=
		if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {=0A=
			return a.compareDocumentPosition ? -1 : 1;=0A=
		}=0A=
=0A=
		return a.compareDocumentPosition(b) & 4 ? -1 : 1;=0A=
	};=0A=
=0A=
} else {=0A=
	sortOrder =3D function( a, b ) {=0A=
		// The nodes are identical, we can exit early=0A=
		if ( a =3D=3D=3D b ) {=0A=
			hasDuplicate =3D true;=0A=
			return 0;=0A=
=0A=
		// Fallback to using sourceIndex (in IE) if it's available on both =
nodes=0A=
		} else if ( a.sourceIndex && b.sourceIndex ) {=0A=
			return a.sourceIndex - b.sourceIndex;=0A=
		}=0A=
=0A=
		var al, bl,=0A=
			ap =3D [],=0A=
			bp =3D [],=0A=
			aup =3D a.parentNode,=0A=
			bup =3D b.parentNode,=0A=
			cur =3D aup;=0A=
=0A=
		// If the nodes are siblings (or identical) we can do a quick check=0A=
		if ( aup =3D=3D=3D bup ) {=0A=
			return siblingCheck( a, b );=0A=
=0A=
		// If no parents were found then the nodes are disconnected=0A=
		} else if ( !aup ) {=0A=
			return -1;=0A=
=0A=
		} else if ( !bup ) {=0A=
			return 1;=0A=
		}=0A=
=0A=
		// Otherwise they're somewhere else in the tree so we need=0A=
		// to build up a full list of the parentNodes for comparison=0A=
		while ( cur ) {=0A=
			ap.unshift( cur );=0A=
			cur =3D cur.parentNode;=0A=
		}=0A=
=0A=
		cur =3D bup;=0A=
=0A=
		while ( cur ) {=0A=
			bp.unshift( cur );=0A=
			cur =3D cur.parentNode;=0A=
		}=0A=
=0A=
		al =3D ap.length;=0A=
		bl =3D bp.length;=0A=
=0A=
		// Start walking down the tree looking for a discrepancy=0A=
		for ( var i =3D 0; i < al && i < bl; i++ ) {=0A=
			if ( ap[i] !=3D=3D bp[i] ) {=0A=
				return siblingCheck( ap[i], bp[i] );=0A=
			}=0A=
		}=0A=
=0A=
		// We ended someplace up the tree so do a sibling check=0A=
		return i =3D=3D=3D al ?=0A=
			siblingCheck( a, bp[i], -1 ) :=0A=
			siblingCheck( ap[i], b, 1 );=0A=
	};=0A=
=0A=
	siblingCheck =3D function( a, b, ret ) {=0A=
		if ( a =3D=3D=3D b ) {=0A=
			return ret;=0A=
		}=0A=
=0A=
		var cur =3D a.nextSibling;=0A=
=0A=
		while ( cur ) {=0A=
			if ( cur =3D=3D=3D b ) {=0A=
				return -1;=0A=
			}=0A=
=0A=
			cur =3D cur.nextSibling;=0A=
		}=0A=
=0A=
		return 1;=0A=
	};=0A=
}=0A=
=0A=
// Utility function for retreiving the text value of an array of DOM =
nodes=0A=
Sizzle.getText =3D function( elems ) {=0A=
	var ret =3D "", elem;=0A=
=0A=
	for ( var i =3D 0; elems[i]; i++ ) {=0A=
		elem =3D elems[i];=0A=
=0A=
		// Get the text from text nodes and CDATA nodes=0A=
		if ( elem.nodeType =3D=3D=3D 3 || elem.nodeType =3D=3D=3D 4 ) {=0A=
			ret +=3D elem.nodeValue;=0A=
=0A=
		// Traverse everything else, except comment nodes=0A=
		} else if ( elem.nodeType !=3D=3D 8 ) {=0A=
			ret +=3D Sizzle.getText( elem.childNodes );=0A=
		}=0A=
	}=0A=
=0A=
	return ret;=0A=
};=0A=
=0A=
// Check to see if the browser returns elements by name when=0A=
// querying by getElementById (and provide a workaround)=0A=
(function(){=0A=
	// We're going to inject a fake input element with a specified name=0A=
	var form =3D document.createElement("div"),=0A=
		id =3D "script" + (new Date()).getTime(),=0A=
		root =3D document.documentElement;=0A=
=0A=
	form.innerHTML =3D "<a name=3D'" + id + "'/>";=0A=
=0A=
	// Inject it into the root element, check its status, and remove it =
quickly=0A=
	root.insertBefore( form, root.firstChild );=0A=
=0A=
	// The workaround has to do additional checks after a getElementById=0A=
	// Which slows things down for other browsers (hence the branching)=0A=
	if ( document.getElementById( id ) ) {=0A=
		Expr.find.ID =3D function( match, context, isXML ) {=0A=
			if ( typeof context.getElementById !=3D=3D "undefined" && !isXML ) {=0A=
				var m =3D context.getElementById(match[1]);=0A=
=0A=
				return m ?=0A=
					m.id =3D=3D=3D match[1] || typeof m.getAttributeNode !=3D=3D =
"undefined" && m.getAttributeNode("id").nodeValue =3D=3D=3D match[1] ?=0A=
						[m] :=0A=
						undefined :=0A=
					[];=0A=
			}=0A=
		};=0A=
=0A=
		Expr.filter.ID =3D function( elem, match ) {=0A=
			var node =3D typeof elem.getAttributeNode !=3D=3D "undefined" && =
elem.getAttributeNode("id");=0A=
=0A=
			return elem.nodeType =3D=3D=3D 1 && node && node.nodeValue =3D=3D=3D =
match;=0A=
		};=0A=
	}=0A=
=0A=
	root.removeChild( form );=0A=
=0A=
	// release memory in IE=0A=
	root =3D form =3D null;=0A=
})();=0A=
=0A=
(function(){=0A=
	// Check to see if the browser returns only elements=0A=
	// when doing getElementsByTagName("*")=0A=
=0A=
	// Create a fake element=0A=
	var div =3D document.createElement("div");=0A=
	div.appendChild( document.createComment("") );=0A=
=0A=
	// Make sure no comments are found=0A=
	if ( div.getElementsByTagName("*").length > 0 ) {=0A=
		Expr.find.TAG =3D function( match, context ) {=0A=
			var results =3D context.getElementsByTagName( match[1] );=0A=
=0A=
			// Filter out possible comments=0A=
			if ( match[1] =3D=3D=3D "*" ) {=0A=
				var tmp =3D [];=0A=
=0A=
				for ( var i =3D 0; results[i]; i++ ) {=0A=
					if ( results[i].nodeType =3D=3D=3D 1 ) {=0A=
						tmp.push( results[i] );=0A=
					}=0A=
				}=0A=
=0A=
				results =3D tmp;=0A=
			}=0A=
=0A=
			return results;=0A=
		};=0A=
	}=0A=
=0A=
	// Check to see if an attribute returns normalized href attributes=0A=
	div.innerHTML =3D "<a href=3D'#'></a>";=0A=
=0A=
	if ( div.firstChild && typeof div.firstChild.getAttribute !=3D=3D =
"undefined" &&=0A=
			div.firstChild.getAttribute("href") !=3D=3D "#" ) {=0A=
=0A=
		Expr.attrHandle.href =3D function( elem ) {=0A=
			return elem.getAttribute( "href", 2 );=0A=
		};=0A=
	}=0A=
=0A=
	// release memory in IE=0A=
	div =3D null;=0A=
})();=0A=
=0A=
if ( document.querySelectorAll ) {=0A=
	(function(){=0A=
		var oldSizzle =3D Sizzle,=0A=
			div =3D document.createElement("div"),=0A=
			id =3D "__sizzle__";=0A=
=0A=
		div.innerHTML =3D "<p class=3D'TEST'></p>";=0A=
=0A=
		// Safari can't handle uppercase or unicode characters when=0A=
		// in quirks mode.=0A=
		if ( div.querySelectorAll && div.querySelectorAll(".TEST").length =
=3D=3D=3D 0 ) {=0A=
			return;=0A=
		}=0A=
	=0A=
		Sizzle =3D function( query, context, extra, seed ) {=0A=
			context =3D context || document;=0A=
=0A=
			// Only use querySelectorAll on non-XML documents=0A=
			// (ID selectors don't work in non-HTML documents)=0A=
			if ( !seed && !Sizzle.isXML(context) ) {=0A=
				// See if we find a selector to speed up=0A=
				var match =3D /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );=0A=
				=0A=
				if ( match && (context.nodeType =3D=3D=3D 1 || context.nodeType =
=3D=3D=3D 9) ) {=0A=
					// Speed-up: Sizzle("TAG")=0A=
					if ( match[1] ) {=0A=
						return makeArray( context.getElementsByTagName( query ), extra );=0A=
					=0A=
					// Speed-up: Sizzle(".CLASS")=0A=
					} else if ( match[2] && Expr.find.CLASS && =
context.getElementsByClassName ) {=0A=
						return makeArray( context.getElementsByClassName( match[2] ), =
extra );=0A=
					}=0A=
				}=0A=
				=0A=
				if ( context.nodeType =3D=3D=3D 9 ) {=0A=
					// Speed-up: Sizzle("body")=0A=
					// The body element only exists once, optimize finding it=0A=
					if ( query =3D=3D=3D "body" && context.body ) {=0A=
						return makeArray( [ context.body ], extra );=0A=
						=0A=
					// Speed-up: Sizzle("#ID")=0A=
					} else if ( match && match[3] ) {=0A=
						var elem =3D context.getElementById( match[3] );=0A=
=0A=
						// Check parentNode to catch when Blackberry 4.6 returns=0A=
						// nodes that are no longer in the document #6963=0A=
						if ( elem && elem.parentNode ) {=0A=
							// Handle the case where IE and Opera return items=0A=
							// by name instead of ID=0A=
							if ( elem.id =3D=3D=3D match[3] ) {=0A=
								return makeArray( [ elem ], extra );=0A=
							}=0A=
							=0A=
						} else {=0A=
							return makeArray( [], extra );=0A=
						}=0A=
					}=0A=
					=0A=
					try {=0A=
						return makeArray( context.querySelectorAll(query), extra );=0A=
					} catch(qsaError) {}=0A=
=0A=
				// qSA works strangely on Element-rooted queries=0A=
				// We can work around this by specifying an extra ID on the root=0A=
				// and working up from there (Thanks to Andrew Dupont for the =
technique)=0A=
				// IE 8 doesn't work on object elements=0A=
				} else if ( context.nodeType =3D=3D=3D 1 && =
context.nodeName.toLowerCase() !=3D=3D "object" ) {=0A=
					var oldContext =3D context,=0A=
						old =3D context.getAttribute( "id" ),=0A=
						nid =3D old || id,=0A=
						hasParent =3D context.parentNode,=0A=
						relativeHierarchySelector =3D /^\s*[+~]/.test( query );=0A=
=0A=
					if ( !old ) {=0A=
						context.setAttribute( "id", nid );=0A=
					} else {=0A=
						nid =3D nid.replace( /'/g, "\\$&" );=0A=
					}=0A=
					if ( relativeHierarchySelector && hasParent ) {=0A=
						context =3D context.parentNode;=0A=
					}=0A=
=0A=
					try {=0A=
						if ( !relativeHierarchySelector || hasParent ) {=0A=
							return makeArray( context.querySelectorAll( "[id=3D'" + nid + "'] =
" + query ), extra );=0A=
						}=0A=
=0A=
					} catch(pseudoError) {=0A=
					} finally {=0A=
						if ( !old ) {=0A=
							oldContext.removeAttribute( "id" );=0A=
						}=0A=
					}=0A=
				}=0A=
			}=0A=
		=0A=
			return oldSizzle(query, context, extra, seed);=0A=
		};=0A=
=0A=
		for ( var prop in oldSizzle ) {=0A=
			Sizzle[ prop ] =3D oldSizzle[ prop ];=0A=
		}=0A=
=0A=
		// release memory in IE=0A=
		div =3D null;=0A=
	})();=0A=
}=0A=
=0A=
(function(){=0A=
	var html =3D document.documentElement,=0A=
		matches =3D html.matchesSelector || html.mozMatchesSelector || =
html.webkitMatchesSelector || html.msMatchesSelector;=0A=
=0A=
	if ( matches ) {=0A=
		// Check to see if it's possible to do matchesSelector=0A=
		// on a disconnected node (IE 9 fails this)=0A=
		var disconnectedMatch =3D !matches.call( document.createElement( "div" =
), "div" ),=0A=
			pseudoWorks =3D false;=0A=
=0A=
		try {=0A=
			// This should fail with an exception=0A=
			// Gecko does not error, returns false instead=0A=
			matches.call( document.documentElement, "[test!=3D'']:sizzle" );=0A=
	=0A=
		} catch( pseudoError ) {=0A=
			pseudoWorks =3D true;=0A=
		}=0A=
=0A=
		Sizzle.matchesSelector =3D function( node, expr ) {=0A=
			// Make sure that attribute selectors are quoted=0A=
			expr =3D expr.replace(/\=3D\s*([^'"\]]*)\s*\]/g, "=3D'$1']");=0A=
=0A=
			if ( !Sizzle.isXML( node ) ) {=0A=
				try { =0A=
					if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && =
!/!=3D/.test( expr ) ) {=0A=
						var ret =3D matches.call( node, expr );=0A=
=0A=
						// IE 9's matchesSelector returns false on disconnected nodes=0A=
						if ( ret || !disconnectedMatch ||=0A=
								// As well, disconnected nodes are said to be in a document=0A=
								// fragment in IE 9, so check for that=0A=
								node.document && node.document.nodeType !=3D=3D 11 ) {=0A=
							return ret;=0A=
						}=0A=
					}=0A=
				} catch(e) {}=0A=
			}=0A=
=0A=
			return Sizzle(expr, null, null, [node]).length > 0;=0A=
		};=0A=
	}=0A=
})();=0A=
=0A=
(function(){=0A=
	var div =3D document.createElement("div");=0A=
=0A=
	div.innerHTML =3D "<div class=3D'test e'></div><div =
class=3D'test'></div>";=0A=
=0A=
	// Opera can't find a second classname (in 9.6)=0A=
	// Also, make sure that getElementsByClassName actually exists=0A=
	if ( !div.getElementsByClassName || =
div.getElementsByClassName("e").length =3D=3D=3D 0 ) {=0A=
		return;=0A=
	}=0A=
=0A=
	// Safari caches class attributes, doesn't catch changes (in 3.2)=0A=
	div.lastChild.className =3D "e";=0A=
=0A=
	if ( div.getElementsByClassName("e").length =3D=3D=3D 1 ) {=0A=
		return;=0A=
	}=0A=
	=0A=
	Expr.order.splice(1, 0, "CLASS");=0A=
	Expr.find.CLASS =3D function( match, context, isXML ) {=0A=
		if ( typeof context.getElementsByClassName !=3D=3D "undefined" && =
!isXML ) {=0A=
			return context.getElementsByClassName(match[1]);=0A=
		}=0A=
	};=0A=
=0A=
	// release memory in IE=0A=
	div =3D null;=0A=
})();=0A=
=0A=
function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {=0A=
	for ( var i =3D 0, l =3D checkSet.length; i < l; i++ ) {=0A=
		var elem =3D checkSet[i];=0A=
=0A=
		if ( elem ) {=0A=
			var match =3D false;=0A=
=0A=
			elem =3D elem[dir];=0A=
=0A=
			while ( elem ) {=0A=
				if ( elem.sizcache =3D=3D=3D doneName ) {=0A=
					match =3D checkSet[elem.sizset];=0A=
					break;=0A=
				}=0A=
=0A=
				if ( elem.nodeType =3D=3D=3D 1 && !isXML ){=0A=
					elem.sizcache =3D doneName;=0A=
					elem.sizset =3D i;=0A=
				}=0A=
=0A=
				if ( elem.nodeName.toLowerCase() =3D=3D=3D cur ) {=0A=
					match =3D elem;=0A=
					break;=0A=
				}=0A=
=0A=
				elem =3D elem[dir];=0A=
			}=0A=
=0A=
			checkSet[i] =3D match;=0A=
		}=0A=
	}=0A=
}=0A=
=0A=
function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {=0A=
	for ( var i =3D 0, l =3D checkSet.length; i < l; i++ ) {=0A=
		var elem =3D checkSet[i];=0A=
=0A=
		if ( elem ) {=0A=
			var match =3D false;=0A=
			=0A=
			elem =3D elem[dir];=0A=
=0A=
			while ( elem ) {=0A=
				if ( elem.sizcache =3D=3D=3D doneName ) {=0A=
					match =3D checkSet[elem.sizset];=0A=
					break;=0A=
				}=0A=
=0A=
				if ( elem.nodeType =3D=3D=3D 1 ) {=0A=
					if ( !isXML ) {=0A=
						elem.sizcache =3D doneName;=0A=
						elem.sizset =3D i;=0A=
					}=0A=
=0A=
					if ( typeof cur !=3D=3D "string" ) {=0A=
						if ( elem =3D=3D=3D cur ) {=0A=
							match =3D true;=0A=
							break;=0A=
						}=0A=
=0A=
					} else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {=0A=
						match =3D elem;=0A=
						break;=0A=
					}=0A=
				}=0A=
=0A=
				elem =3D elem[dir];=0A=
			}=0A=
=0A=
			checkSet[i] =3D match;=0A=
		}=0A=
	}=0A=
}=0A=
=0A=
if ( document.documentElement.contains ) {=0A=
	Sizzle.contains =3D function( a, b ) {=0A=
		return a !=3D=3D b && (a.contains ? a.contains(b) : true);=0A=
	};=0A=
=0A=
} else if ( document.documentElement.compareDocumentPosition ) {=0A=
	Sizzle.contains =3D function( a, b ) {=0A=
		return !!(a.compareDocumentPosition(b) & 16);=0A=
	};=0A=
=0A=
} else {=0A=
	Sizzle.contains =3D function() {=0A=
		return false;=0A=
	};=0A=
}=0A=
=0A=
Sizzle.isXML =3D function( elem ) {=0A=
	// documentElement is verified for cases where it doesn't yet exist=0A=
	// (such as loading iframes in IE - #4833) =0A=
	var documentElement =3D (elem ? elem.ownerDocument || elem : =
0).documentElement;=0A=
=0A=
	return documentElement ? documentElement.nodeName !=3D=3D "HTML" : =
false;=0A=
};=0A=
=0A=
var posProcess =3D function( selector, context ) {=0A=
	var match,=0A=
		tmpSet =3D [],=0A=
		later =3D "",=0A=
		root =3D context.nodeType ? [context] : context;=0A=
=0A=
	// Position selectors must be done after the filter=0A=
	// And so must :not(positional) so we move all PSEUDOs to the end=0A=
	while ( (match =3D Expr.match.PSEUDO.exec( selector )) ) {=0A=
		later +=3D match[0];=0A=
		selector =3D selector.replace( Expr.match.PSEUDO, "" );=0A=
	}=0A=
=0A=
	selector =3D Expr.relative[selector] ? selector + "*" : selector;=0A=
=0A=
	for ( var i =3D 0, l =3D root.length; i < l; i++ ) {=0A=
		Sizzle( selector, root[i], tmpSet );=0A=
	}=0A=
=0A=
	return Sizzle.filter( later, tmpSet );=0A=
};=0A=
=0A=
// EXPOSE=0A=
jQuery.find =3D Sizzle;=0A=
jQuery.expr =3D Sizzle.selectors;=0A=
jQuery.expr[":"] =3D jQuery.expr.filters;=0A=
jQuery.unique =3D Sizzle.uniqueSort;=0A=
jQuery.text =3D Sizzle.getText;=0A=
jQuery.isXMLDoc =3D Sizzle.isXML;=0A=
jQuery.contains =3D Sizzle.contains;=0A=
=0A=
=0A=
})();=0A=
=0A=
=0A=
var runtil =3D /Until$/,=0A=
	rparentsprev =3D /^(?:parents|prevUntil|prevAll)/,=0A=
	// Note: This RegExp should be improved, or likely pulled from Sizzle=0A=
	rmultiselector =3D /,/,=0A=
	isSimple =3D /^.[^:#\[\.,]*$/,=0A=
	slice =3D Array.prototype.slice,=0A=
	POS =3D jQuery.expr.match.POS,=0A=
	// methods guaranteed to produce a unique set when starting from a =
unique set=0A=
	guaranteedUnique =3D {=0A=
		children: true,=0A=
		contents: true,=0A=
		next: true,=0A=
		prev: true=0A=
	};=0A=
=0A=
jQuery.fn.extend({=0A=
	find: function( selector ) {=0A=
		var self =3D this,=0A=
			i, l;=0A=
=0A=
		if ( typeof selector !=3D=3D "string" ) {=0A=
			return jQuery( selector ).filter(function() {=0A=
				for ( i =3D 0, l =3D self.length; i < l; i++ ) {=0A=
					if ( jQuery.contains( self[ i ], this ) ) {=0A=
						return true;=0A=
					}=0A=
				}=0A=
			});=0A=
		}=0A=
=0A=
		var ret =3D this.pushStack( "", "find", selector ),=0A=
			length, n, r;=0A=
=0A=
		for ( i =3D 0, l =3D this.length; i < l; i++ ) {=0A=
			length =3D ret.length;=0A=
			jQuery.find( selector, this[i], ret );=0A=
=0A=
			if ( i > 0 ) {=0A=
				// Make sure that the results are unique=0A=
				for ( n =3D length; n < ret.length; n++ ) {=0A=
					for ( r =3D 0; r < length; r++ ) {=0A=
						if ( ret[r] =3D=3D=3D ret[n] ) {=0A=
							ret.splice(n--, 1);=0A=
							break;=0A=
						}=0A=
					}=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		return ret;=0A=
	},=0A=
=0A=
	has: function( target ) {=0A=
		var targets =3D jQuery( target );=0A=
		return this.filter(function() {=0A=
			for ( var i =3D 0, l =3D targets.length; i < l; i++ ) {=0A=
				if ( jQuery.contains( this, targets[i] ) ) {=0A=
					return true;=0A=
				}=0A=
			}=0A=
		});=0A=
	},=0A=
=0A=
	not: function( selector ) {=0A=
		return this.pushStack( winnow(this, selector, false), "not", selector);=0A=
	},=0A=
=0A=
	filter: function( selector ) {=0A=
		return this.pushStack( winnow(this, selector, true), "filter", =
selector );=0A=
	},=0A=
=0A=
	is: function( selector ) {=0A=
		return !!selector && ( typeof selector =3D=3D=3D "string" ?=0A=
			jQuery.filter( selector, this ).length > 0 :=0A=
			this.filter( selector ).length > 0 );=0A=
	},=0A=
=0A=
	closest: function( selectors, context ) {=0A=
		var ret =3D [], i, l, cur =3D this[0];=0A=
		=0A=
		// Array=0A=
		if ( jQuery.isArray( selectors ) ) {=0A=
			var match, selector,=0A=
				matches =3D {},=0A=
				level =3D 1;=0A=
=0A=
			if ( cur && selectors.length ) {=0A=
				for ( i =3D 0, l =3D selectors.length; i < l; i++ ) {=0A=
					selector =3D selectors[i];=0A=
=0A=
					if ( !matches[ selector ] ) {=0A=
						matches[ selector ] =3D POS.test( selector ) ?=0A=
							jQuery( selector, context || this.context ) :=0A=
							selector;=0A=
					}=0A=
				}=0A=
=0A=
				while ( cur && cur.ownerDocument && cur !=3D=3D context ) {=0A=
					for ( selector in matches ) {=0A=
						match =3D matches[ selector ];=0A=
=0A=
						if ( match.jquery ? match.index( cur ) > -1 : jQuery( cur ).is( =
match ) ) {=0A=
							ret.push({ selector: selector, elem: cur, level: level });=0A=
						}=0A=
					}=0A=
=0A=
					cur =3D cur.parentNode;=0A=
					level++;=0A=
				}=0A=
			}=0A=
=0A=
			return ret;=0A=
		}=0A=
=0A=
		// String=0A=
		var pos =3D POS.test( selectors ) || typeof selectors !=3D=3D "string" =
?=0A=
				jQuery( selectors, context || this.context ) :=0A=
				0;=0A=
=0A=
		for ( i =3D 0, l =3D this.length; i < l; i++ ) {=0A=
			cur =3D this[i];=0A=
=0A=
			while ( cur ) {=0A=
				if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, =
selectors) ) {=0A=
					ret.push( cur );=0A=
					break;=0A=
=0A=
				} else {=0A=
					cur =3D cur.parentNode;=0A=
					if ( !cur || !cur.ownerDocument || cur =3D=3D=3D context || =
cur.nodeType =3D=3D=3D 11 ) {=0A=
						break;=0A=
					}=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		ret =3D ret.length > 1 ? jQuery.unique( ret ) : ret;=0A=
=0A=
		return this.pushStack( ret, "closest", selectors );=0A=
	},=0A=
=0A=
	// Determine the position of an element within=0A=
	// the matched set of elements=0A=
	index: function( elem ) {=0A=
		if ( !elem || typeof elem =3D=3D=3D "string" ) {=0A=
			return jQuery.inArray( this[0],=0A=
				// If it receives a string, the selector is used=0A=
				// If it receives nothing, the siblings are used=0A=
				elem ? jQuery( elem ) : this.parent().children() );=0A=
		}=0A=
		// Locate the position of the desired element=0A=
		return jQuery.inArray(=0A=
			// If it receives a jQuery object, the first element is used=0A=
			elem.jquery ? elem[0] : elem, this );=0A=
	},=0A=
=0A=
	add: function( selector, context ) {=0A=
		var set =3D typeof selector =3D=3D=3D "string" ?=0A=
				jQuery( selector, context ) :=0A=
				jQuery.makeArray( selector && selector.nodeType ? [ selector ] : =
selector ),=0A=
			all =3D jQuery.merge( this.get(), set );=0A=
=0A=
		return this.pushStack( isDisconnected( set[0] ) || isDisconnected( =
all[0] ) ?=0A=
			all :=0A=
			jQuery.unique( all ) );=0A=
	},=0A=
=0A=
	andSelf: function() {=0A=
		return this.add( this.prevObject );=0A=
	}=0A=
});=0A=
=0A=
// A painfully simple check to see if an element is disconnected=0A=
// from a document (should be improved, where feasible).=0A=
function isDisconnected( node ) {=0A=
	return !node || !node.parentNode || node.parentNode.nodeType =3D=3D=3D =
11;=0A=
}=0A=
=0A=
jQuery.each({=0A=
	parent: function( elem ) {=0A=
		var parent =3D elem.parentNode;=0A=
		return parent && parent.nodeType !=3D=3D 11 ? parent : null;=0A=
	},=0A=
	parents: function( elem ) {=0A=
		return jQuery.dir( elem, "parentNode" );=0A=
	},=0A=
	parentsUntil: function( elem, i, until ) {=0A=
		return jQuery.dir( elem, "parentNode", until );=0A=
	},=0A=
	next: function( elem ) {=0A=
		return jQuery.nth( elem, 2, "nextSibling" );=0A=
	},=0A=
	prev: function( elem ) {=0A=
		return jQuery.nth( elem, 2, "previousSibling" );=0A=
	},=0A=
	nextAll: function( elem ) {=0A=
		return jQuery.dir( elem, "nextSibling" );=0A=
	},=0A=
	prevAll: function( elem ) {=0A=
		return jQuery.dir( elem, "previousSibling" );=0A=
	},=0A=
	nextUntil: function( elem, i, until ) {=0A=
		return jQuery.dir( elem, "nextSibling", until );=0A=
	},=0A=
	prevUntil: function( elem, i, until ) {=0A=
		return jQuery.dir( elem, "previousSibling", until );=0A=
	},=0A=
	siblings: function( elem ) {=0A=
		return jQuery.sibling( elem.parentNode.firstChild, elem );=0A=
	},=0A=
	children: function( elem ) {=0A=
		return jQuery.sibling( elem.firstChild );=0A=
	},=0A=
	contents: function( elem ) {=0A=
		return jQuery.nodeName( elem, "iframe" ) ?=0A=
			elem.contentDocument || elem.contentWindow.document :=0A=
			jQuery.makeArray( elem.childNodes );=0A=
	}=0A=
}, function( name, fn ) {=0A=
	jQuery.fn[ name ] =3D function( until, selector ) {=0A=
		var ret =3D jQuery.map( this, fn, until ),=0A=
			// The variable 'args' was introduced in=0A=
			// https://github.com/jquery/jquery/commit/52a0238=0A=
			// to work around a bug in Chrome 10 (Dev) and should be removed when =
the bug is fixed.=0A=
			// http://code.google.com/p/v8/issues/detail?id=3D1050=0A=
			args =3D slice.call(arguments);=0A=
=0A=
		if ( !runtil.test( name ) ) {=0A=
			selector =3D until;=0A=
		}=0A=
=0A=
		if ( selector && typeof selector =3D=3D=3D "string" ) {=0A=
			ret =3D jQuery.filter( selector, ret );=0A=
		}=0A=
=0A=
		ret =3D this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( =
ret ) : ret;=0A=
=0A=
		if ( (this.length > 1 || rmultiselector.test( selector )) && =
rparentsprev.test( name ) ) {=0A=
			ret =3D ret.reverse();=0A=
		}=0A=
=0A=
		return this.pushStack( ret, name, args.join(",") );=0A=
	};=0A=
});=0A=
=0A=
jQuery.extend({=0A=
	filter: function( expr, elems, not ) {=0A=
		if ( not ) {=0A=
			expr =3D ":not(" + expr + ")";=0A=
		}=0A=
=0A=
		return elems.length =3D=3D=3D 1 ?=0A=
			jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :=0A=
			jQuery.find.matches(expr, elems);=0A=
	},=0A=
=0A=
	dir: function( elem, dir, until ) {=0A=
		var matched =3D [],=0A=
			cur =3D elem[ dir ];=0A=
=0A=
		while ( cur && cur.nodeType !=3D=3D 9 && (until =3D=3D=3D undefined || =
cur.nodeType !=3D=3D 1 || !jQuery( cur ).is( until )) ) {=0A=
			if ( cur.nodeType =3D=3D=3D 1 ) {=0A=
				matched.push( cur );=0A=
			}=0A=
			cur =3D cur[dir];=0A=
		}=0A=
		return matched;=0A=
	},=0A=
=0A=
	nth: function( cur, result, dir, elem ) {=0A=
		result =3D result || 1;=0A=
		var num =3D 0;=0A=
=0A=
		for ( ; cur; cur =3D cur[dir] ) {=0A=
			if ( cur.nodeType =3D=3D=3D 1 && ++num =3D=3D=3D result ) {=0A=
				break;=0A=
			}=0A=
		}=0A=
=0A=
		return cur;=0A=
	},=0A=
=0A=
	sibling: function( n, elem ) {=0A=
		var r =3D [];=0A=
=0A=
		for ( ; n; n =3D n.nextSibling ) {=0A=
			if ( n.nodeType =3D=3D=3D 1 && n !=3D=3D elem ) {=0A=
				r.push( n );=0A=
			}=0A=
		}=0A=
=0A=
		return r;=0A=
	}=0A=
});=0A=
=0A=
// Implement the identical functionality for filter and not=0A=
function winnow( elements, qualifier, keep ) {=0A=
=0A=
	// Can't pass null or undefined to indexOf in Firefox 4=0A=
	// Set to 0 to skip string check=0A=
	qualifier =3D qualifier || 0;=0A=
=0A=
	if ( jQuery.isFunction( qualifier ) ) {=0A=
		return jQuery.grep(elements, function( elem, i ) {=0A=
			var retVal =3D !!qualifier.call( elem, i, elem );=0A=
			return retVal =3D=3D=3D keep;=0A=
		});=0A=
=0A=
	} else if ( qualifier.nodeType ) {=0A=
		return jQuery.grep(elements, function( elem, i ) {=0A=
			return (elem =3D=3D=3D qualifier) =3D=3D=3D keep;=0A=
		});=0A=
=0A=
	} else if ( typeof qualifier =3D=3D=3D "string" ) {=0A=
		var filtered =3D jQuery.grep(elements, function( elem ) {=0A=
			return elem.nodeType =3D=3D=3D 1;=0A=
		});=0A=
=0A=
		if ( isSimple.test( qualifier ) ) {=0A=
			return jQuery.filter(qualifier, filtered, !keep);=0A=
		} else {=0A=
			qualifier =3D jQuery.filter( qualifier, filtered );=0A=
		}=0A=
	}=0A=
=0A=
	return jQuery.grep(elements, function( elem, i ) {=0A=
		return (jQuery.inArray( elem, qualifier ) >=3D 0) =3D=3D=3D keep;=0A=
	});=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
var rinlinejQuery =3D / jQuery\d+=3D"(?:\d+|null)"/g,=0A=
	rleadingWhitespace =3D /^\s+/,=0A=
	rxhtmlTag =3D =
/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig=
,=0A=
	rtagName =3D /<([\w:]+)/,=0A=
	rtbody =3D /<tbody/i,=0A=
	rhtml =3D /<|&#?\w+;/,=0A=
	rnocache =3D /<(?:script|object|embed|option|style)/i,=0A=
	// checked=3D"checked" or checked=0A=
	rchecked =3D /checked\s*(?:[^=3D]|=3D\s*.checked.)/i,=0A=
	rscriptType =3D /\/(java|ecma)script/i,=0A=
	rcleanScript =3D /^\s*<!(?:\[CDATA\[|\-\-)/,=0A=
	wrapMap =3D {=0A=
		option: [ 1, "<select multiple=3D'multiple'>", "</select>" ],=0A=
		legend: [ 1, "<fieldset>", "</fieldset>" ],=0A=
		thead: [ 1, "<table>", "</table>" ],=0A=
		tr: [ 2, "<table><tbody>", "</tbody></table>" ],=0A=
		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],=0A=
		col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],=0A=
		area: [ 1, "<map>", "</map>" ],=0A=
		_default: [ 0, "", "" ]=0A=
	};=0A=
=0A=
wrapMap.optgroup =3D wrapMap.option;=0A=
wrapMap.tbody =3D wrapMap.tfoot =3D wrapMap.colgroup =3D wrapMap.caption =
=3D wrapMap.thead;=0A=
wrapMap.th =3D wrapMap.td;=0A=
=0A=
// IE can't serialize <link> and <script> tags normally=0A=
if ( !jQuery.support.htmlSerialize ) {=0A=
	wrapMap._default =3D [ 1, "div<div>", "</div>" ];=0A=
}=0A=
=0A=
jQuery.fn.extend({=0A=
	text: function( text ) {=0A=
		if ( jQuery.isFunction(text) ) {=0A=
			return this.each(function(i) {=0A=
				var self =3D jQuery( this );=0A=
=0A=
				self.text( text.call(this, i, self.text()) );=0A=
			});=0A=
		}=0A=
=0A=
		if ( typeof text !=3D=3D "object" && text !=3D=3D undefined ) {=0A=
			return this.empty().append( (this[0] && this[0].ownerDocument || =
document).createTextNode( text ) );=0A=
		}=0A=
=0A=
		return jQuery.text( this );=0A=
	},=0A=
=0A=
	wrapAll: function( html ) {=0A=
		if ( jQuery.isFunction( html ) ) {=0A=
			return this.each(function(i) {=0A=
				jQuery(this).wrapAll( html.call(this, i) );=0A=
			});=0A=
		}=0A=
=0A=
		if ( this[0] ) {=0A=
			// The elements to wrap the target around=0A=
			var wrap =3D jQuery( html, this[0].ownerDocument ).eq(0).clone(true);=0A=
=0A=
			if ( this[0].parentNode ) {=0A=
				wrap.insertBefore( this[0] );=0A=
			}=0A=
=0A=
			wrap.map(function() {=0A=
				var elem =3D this;=0A=
=0A=
				while ( elem.firstChild && elem.firstChild.nodeType =3D=3D=3D 1 ) {=0A=
					elem =3D elem.firstChild;=0A=
				}=0A=
=0A=
				return elem;=0A=
			}).append( this );=0A=
		}=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	wrapInner: function( html ) {=0A=
		if ( jQuery.isFunction( html ) ) {=0A=
			return this.each(function(i) {=0A=
				jQuery(this).wrapInner( html.call(this, i) );=0A=
			});=0A=
		}=0A=
=0A=
		return this.each(function() {=0A=
			var self =3D jQuery( this ),=0A=
				contents =3D self.contents();=0A=
=0A=
			if ( contents.length ) {=0A=
				contents.wrapAll( html );=0A=
=0A=
			} else {=0A=
				self.append( html );=0A=
			}=0A=
		});=0A=
	},=0A=
=0A=
	wrap: function( html ) {=0A=
		return this.each(function() {=0A=
			jQuery( this ).wrapAll( html );=0A=
		});=0A=
	},=0A=
=0A=
	unwrap: function() {=0A=
		return this.parent().each(function() {=0A=
			if ( !jQuery.nodeName( this, "body" ) ) {=0A=
				jQuery( this ).replaceWith( this.childNodes );=0A=
			}=0A=
		}).end();=0A=
	},=0A=
=0A=
	append: function() {=0A=
		return this.domManip(arguments, true, function( elem ) {=0A=
			if ( this.nodeType =3D=3D=3D 1 ) {=0A=
				this.appendChild( elem );=0A=
			}=0A=
		});=0A=
	},=0A=
=0A=
	prepend: function() {=0A=
		return this.domManip(arguments, true, function( elem ) {=0A=
			if ( this.nodeType =3D=3D=3D 1 ) {=0A=
				this.insertBefore( elem, this.firstChild );=0A=
			}=0A=
		});=0A=
	},=0A=
=0A=
	before: function() {=0A=
		if ( this[0] && this[0].parentNode ) {=0A=
			return this.domManip(arguments, false, function( elem ) {=0A=
				this.parentNode.insertBefore( elem, this );=0A=
			});=0A=
		} else if ( arguments.length ) {=0A=
			var set =3D jQuery(arguments[0]);=0A=
			set.push.apply( set, this.toArray() );=0A=
			return this.pushStack( set, "before", arguments );=0A=
		}=0A=
	},=0A=
=0A=
	after: function() {=0A=
		if ( this[0] && this[0].parentNode ) {=0A=
			return this.domManip(arguments, false, function( elem ) {=0A=
				this.parentNode.insertBefore( elem, this.nextSibling );=0A=
			});=0A=
		} else if ( arguments.length ) {=0A=
			var set =3D this.pushStack( this, "after", arguments );=0A=
			set.push.apply( set, jQuery(arguments[0]).toArray() );=0A=
			return set;=0A=
		}=0A=
	},=0A=
=0A=
	// keepData is for internal use only--do not document=0A=
	remove: function( selector, keepData ) {=0A=
		for ( var i =3D 0, elem; (elem =3D this[i]) !=3D null; i++ ) {=0A=
			if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {=0A=
				if ( !keepData && elem.nodeType =3D=3D=3D 1 ) {=0A=
					jQuery.cleanData( elem.getElementsByTagName("*") );=0A=
					jQuery.cleanData( [ elem ] );=0A=
				}=0A=
=0A=
				if ( elem.parentNode ) {=0A=
					elem.parentNode.removeChild( elem );=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	empty: function() {=0A=
		for ( var i =3D 0, elem; (elem =3D this[i]) !=3D null; i++ ) {=0A=
			// Remove element nodes and prevent memory leaks=0A=
			if ( elem.nodeType =3D=3D=3D 1 ) {=0A=
				jQuery.cleanData( elem.getElementsByTagName("*") );=0A=
			}=0A=
=0A=
			// Remove any remaining nodes=0A=
			while ( elem.firstChild ) {=0A=
				elem.removeChild( elem.firstChild );=0A=
			}=0A=
		}=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	clone: function( dataAndEvents, deepDataAndEvents ) {=0A=
		dataAndEvents =3D dataAndEvents =3D=3D null ? false : dataAndEvents;=0A=
		deepDataAndEvents =3D deepDataAndEvents =3D=3D null ? dataAndEvents : =
deepDataAndEvents;=0A=
=0A=
		return this.map( function () {=0A=
			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );=0A=
		});=0A=
	},=0A=
=0A=
	html: function( value ) {=0A=
		if ( value =3D=3D=3D undefined ) {=0A=
			return this[0] && this[0].nodeType =3D=3D=3D 1 ?=0A=
				this[0].innerHTML.replace(rinlinejQuery, "") :=0A=
				null;=0A=
=0A=
		// See if we can take a shortcut and just use innerHTML=0A=
		} else if ( typeof value =3D=3D=3D "string" && !rnocache.test( value ) =
&&=0A=
			(jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value =
)) &&=0A=
			!wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) {=0A=
=0A=
			value =3D value.replace(rxhtmlTag, "<$1></$2>");=0A=
=0A=
			try {=0A=
				for ( var i =3D 0, l =3D this.length; i < l; i++ ) {=0A=
					// Remove element nodes and prevent memory leaks=0A=
					if ( this[i].nodeType =3D=3D=3D 1 ) {=0A=
						jQuery.cleanData( this[i].getElementsByTagName("*") );=0A=
						this[i].innerHTML =3D value;=0A=
					}=0A=
				}=0A=
=0A=
			// If using innerHTML throws an exception, use the fallback method=0A=
			} catch(e) {=0A=
				this.empty().append( value );=0A=
			}=0A=
=0A=
		} else if ( jQuery.isFunction( value ) ) {=0A=
			this.each(function(i){=0A=
				var self =3D jQuery( this );=0A=
=0A=
				self.html( value.call(this, i, self.html()) );=0A=
			});=0A=
=0A=
		} else {=0A=
			this.empty().append( value );=0A=
		}=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	replaceWith: function( value ) {=0A=
		if ( this[0] && this[0].parentNode ) {=0A=
			// Make sure that the elements are removed from the DOM before they =
are inserted=0A=
			// this can help fix replacing a parent with child elements=0A=
			if ( jQuery.isFunction( value ) ) {=0A=
				return this.each(function(i) {=0A=
					var self =3D jQuery(this), old =3D self.html();=0A=
					self.replaceWith( value.call( this, i, old ) );=0A=
				});=0A=
			}=0A=
=0A=
			if ( typeof value !=3D=3D "string" ) {=0A=
				value =3D jQuery( value ).detach();=0A=
			}=0A=
=0A=
			return this.each(function() {=0A=
				var next =3D this.nextSibling,=0A=
					parent =3D this.parentNode;=0A=
=0A=
				jQuery( this ).remove();=0A=
=0A=
				if ( next ) {=0A=
					jQuery(next).before( value );=0A=
				} else {=0A=
					jQuery(parent).append( value );=0A=
				}=0A=
			});=0A=
		} else {=0A=
			return this.length ?=0A=
				this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), =
"replaceWith", value ) :=0A=
				this;=0A=
		}=0A=
	},=0A=
=0A=
	detach: function( selector ) {=0A=
		return this.remove( selector, true );=0A=
	},=0A=
=0A=
	domManip: function( args, table, callback ) {=0A=
		var results, first, fragment, parent,=0A=
			value =3D args[0],=0A=
			scripts =3D [];=0A=
=0A=
		// We can't cloneNode fragments that contain checked, in WebKit=0A=
		if ( !jQuery.support.checkClone && arguments.length =3D=3D=3D 3 && =
typeof value =3D=3D=3D "string" && rchecked.test( value ) ) {=0A=
			return this.each(function() {=0A=
				jQuery(this).domManip( args, table, callback, true );=0A=
			});=0A=
		}=0A=
=0A=
		if ( jQuery.isFunction(value) ) {=0A=
			return this.each(function(i) {=0A=
				var self =3D jQuery(this);=0A=
				args[0] =3D value.call(this, i, table ? self.html() : undefined);=0A=
				self.domManip( args, table, callback );=0A=
			});=0A=
		}=0A=
=0A=
		if ( this[0] ) {=0A=
			parent =3D value && value.parentNode;=0A=
=0A=
			// If we're in a fragment, just use that instead of building a new one=0A=
			if ( jQuery.support.parentNode && parent && parent.nodeType =3D=3D=3D =
11 && parent.childNodes.length =3D=3D=3D this.length ) {=0A=
				results =3D { fragment: parent };=0A=
=0A=
			} else {=0A=
				results =3D jQuery.buildFragment( args, this, scripts );=0A=
			}=0A=
=0A=
			fragment =3D results.fragment;=0A=
=0A=
			if ( fragment.childNodes.length =3D=3D=3D 1 ) {=0A=
				first =3D fragment =3D fragment.firstChild;=0A=
			} else {=0A=
				first =3D fragment.firstChild;=0A=
			}=0A=
=0A=
			if ( first ) {=0A=
				table =3D table && jQuery.nodeName( first, "tr" );=0A=
=0A=
				for ( var i =3D 0, l =3D this.length, lastIndex =3D l - 1; i < l; =
i++ ) {=0A=
					callback.call(=0A=
						table ?=0A=
							root(this[i], first) :=0A=
							this[i],=0A=
						// Make sure that we do not leak memory by inadvertently discarding=0A=
						// the original fragment (which might have attached data) instead =
of=0A=
						// using it; in addition, use the original fragment object for the =
last=0A=
						// item instead of first because it can end up being emptied =
incorrectly=0A=
						// in certain situations (Bug #8070).=0A=
						// Fragments from the fragment cache must always be cloned and =
never used=0A=
						// in place.=0A=
						results.cacheable || (l > 1 && i < lastIndex) ?=0A=
							jQuery.clone( fragment, true, true ) :=0A=
							fragment=0A=
					);=0A=
				}=0A=
			}=0A=
=0A=
			if ( scripts.length ) {=0A=
				jQuery.each( scripts, evalScript );=0A=
			}=0A=
		}=0A=
=0A=
		return this;=0A=
	}=0A=
});=0A=
=0A=
function root( elem, cur ) {=0A=
	return jQuery.nodeName(elem, "table") ?=0A=
		(elem.getElementsByTagName("tbody")[0] ||=0A=
		elem.appendChild(elem.ownerDocument.createElement("tbody"))) :=0A=
		elem;=0A=
}=0A=
=0A=
function cloneCopyEvent( src, dest ) {=0A=
=0A=
	if ( dest.nodeType !=3D=3D 1 || !jQuery.hasData( src ) ) {=0A=
		return;=0A=
	}=0A=
=0A=
	var internalKey =3D jQuery.expando,=0A=
		oldData =3D jQuery.data( src ),=0A=
		curData =3D jQuery.data( dest, oldData );=0A=
=0A=
	// Switch to use the internal data object, if it exists, for the next=0A=
	// stage of data copying=0A=
	if ( (oldData =3D oldData[ internalKey ]) ) {=0A=
		var events =3D oldData.events;=0A=
				curData =3D curData[ internalKey ] =3D jQuery.extend({}, oldData);=0A=
=0A=
		if ( events ) {=0A=
			delete curData.handle;=0A=
			curData.events =3D {};=0A=
=0A=
			for ( var type in events ) {=0A=
				for ( var i =3D 0, l =3D events[ type ].length; i < l; i++ ) {=0A=
					jQuery.event.add( dest, type + ( events[ type ][ i ].namespace ? =
"." : "" ) + events[ type ][ i ].namespace, events[ type ][ i ], events[ =
type ][ i ].data );=0A=
				}=0A=
			}=0A=
		}=0A=
	}=0A=
}=0A=
=0A=
function cloneFixAttributes( src, dest ) {=0A=
	var nodeName;=0A=
=0A=
	// We do not need to do anything for non-Elements=0A=
	if ( dest.nodeType !=3D=3D 1 ) {=0A=
		return;=0A=
	}=0A=
=0A=
	// clearAttributes removes the attributes, which we don't want,=0A=
	// but also removes the attachEvent events, which we *do* want=0A=
	if ( dest.clearAttributes ) {=0A=
		dest.clearAttributes();=0A=
	}=0A=
=0A=
	// mergeAttributes, in contrast, only merges back on the=0A=
	// original attributes, not the events=0A=
	if ( dest.mergeAttributes ) {=0A=
		dest.mergeAttributes( src );=0A=
	}=0A=
=0A=
	nodeName =3D dest.nodeName.toLowerCase();=0A=
=0A=
	// IE6-8 fail to clone children inside object elements that use=0A=
	// the proprietary classid attribute value (rather than the type=0A=
	// attribute) to identify the type of content to display=0A=
	if ( nodeName =3D=3D=3D "object" ) {=0A=
		dest.outerHTML =3D src.outerHTML;=0A=
=0A=
	} else if ( nodeName =3D=3D=3D "input" && (src.type =3D=3D=3D =
"checkbox" || src.type =3D=3D=3D "radio") ) {=0A=
		// IE6-8 fails to persist the checked state of a cloned checkbox=0A=
		// or radio button. Worse, IE6-7 fail to give the cloned element=0A=
		// a checked appearance if the defaultChecked value isn't also set=0A=
		if ( src.checked ) {=0A=
			dest.defaultChecked =3D dest.checked =3D src.checked;=0A=
		}=0A=
=0A=
		// IE6-7 get confused and end up setting the value of a cloned=0A=
		// checkbox/radio button to an empty string instead of "on"=0A=
		if ( dest.value !=3D=3D src.value ) {=0A=
			dest.value =3D src.value;=0A=
		}=0A=
=0A=
	// IE6-8 fails to return the selected option to the default selected=0A=
	// state when cloning options=0A=
	} else if ( nodeName =3D=3D=3D "option" ) {=0A=
		dest.selected =3D src.defaultSelected;=0A=
=0A=
	// IE6-8 fails to set the defaultValue to the correct value when=0A=
	// cloning other types of input fields=0A=
	} else if ( nodeName =3D=3D=3D "input" || nodeName =3D=3D=3D "textarea" =
) {=0A=
		dest.defaultValue =3D src.defaultValue;=0A=
	}=0A=
=0A=
	// Event data gets referenced instead of copied if the expando=0A=
	// gets copied too=0A=
	dest.removeAttribute( jQuery.expando );=0A=
}=0A=
=0A=
jQuery.buildFragment =3D function( args, nodes, scripts ) {=0A=
	var fragment, cacheable, cacheresults,=0A=
		doc =3D (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] : =
document);=0A=
=0A=
	// Only cache "small" (1/2 KB) HTML strings that are associated with =
the main document=0A=
	// Cloning options loses the selected state, so don't cache them=0A=
	// IE 6 doesn't like it when you put <object> or <embed> elements in a =
fragment=0A=
	// Also, WebKit does not clone 'checked' attributes on cloneNode, so =
don't cache=0A=
	if ( args.length =3D=3D=3D 1 && typeof args[0] =3D=3D=3D "string" && =
args[0].length < 512 && doc =3D=3D=3D document &&=0A=
		args[0].charAt(0) =3D=3D=3D "<" && !rnocache.test( args[0] ) && =
(jQuery.support.checkClone || !rchecked.test( args[0] )) ) {=0A=
=0A=
		cacheable =3D true;=0A=
=0A=
		cacheresults =3D jQuery.fragments[ args[0] ];=0A=
		if ( cacheresults && cacheresults !=3D=3D 1 ) {=0A=
			fragment =3D cacheresults;=0A=
		}=0A=
	}=0A=
=0A=
	if ( !fragment ) {=0A=
		fragment =3D doc.createDocumentFragment();=0A=
		jQuery.clean( args, doc, fragment, scripts );=0A=
	}=0A=
=0A=
	if ( cacheable ) {=0A=
		jQuery.fragments[ args[0] ] =3D cacheresults ? fragment : 1;=0A=
	}=0A=
=0A=
	return { fragment: fragment, cacheable: cacheable };=0A=
};=0A=
=0A=
jQuery.fragments =3D {};=0A=
=0A=
jQuery.each({=0A=
	appendTo: "append",=0A=
	prependTo: "prepend",=0A=
	insertBefore: "before",=0A=
	insertAfter: "after",=0A=
	replaceAll: "replaceWith"=0A=
}, function( name, original ) {=0A=
	jQuery.fn[ name ] =3D function( selector ) {=0A=
		var ret =3D [],=0A=
			insert =3D jQuery( selector ),=0A=
			parent =3D this.length =3D=3D=3D 1 && this[0].parentNode;=0A=
=0A=
		if ( parent && parent.nodeType =3D=3D=3D 11 && =
parent.childNodes.length =3D=3D=3D 1 && insert.length =3D=3D=3D 1 ) {=0A=
			insert[ original ]( this[0] );=0A=
			return this;=0A=
=0A=
		} else {=0A=
			for ( var i =3D 0, l =3D insert.length; i < l; i++ ) {=0A=
				var elems =3D (i > 0 ? this.clone(true) : this).get();=0A=
				jQuery( insert[i] )[ original ]( elems );=0A=
				ret =3D ret.concat( elems );=0A=
			}=0A=
=0A=
			return this.pushStack( ret, name, insert.selector );=0A=
		}=0A=
	};=0A=
});=0A=
=0A=
function getAll( elem ) {=0A=
	if ( "getElementsByTagName" in elem ) {=0A=
		return elem.getElementsByTagName( "*" );=0A=
=0A=
	} else if ( "querySelectorAll" in elem ) {=0A=
		return elem.querySelectorAll( "*" );=0A=
=0A=
	} else {=0A=
		return [];=0A=
	}=0A=
}=0A=
=0A=
// Used in clean, fixes the defaultChecked property=0A=
function fixDefaultChecked( elem ) {=0A=
	if ( elem.type =3D=3D=3D "checkbox" || elem.type =3D=3D=3D "radio" ) {=0A=
		elem.defaultChecked =3D elem.checked;=0A=
	}=0A=
}=0A=
// Finds all inputs and passes them to fixDefaultChecked=0A=
function findInputs( elem ) {=0A=
	if ( jQuery.nodeName( elem, "input" ) ) {=0A=
		fixDefaultChecked( elem );=0A=
	} else if ( elem.getElementsByTagName ) {=0A=
		jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );=0A=
	}=0A=
}=0A=
=0A=
jQuery.extend({=0A=
	clone: function( elem, dataAndEvents, deepDataAndEvents ) {=0A=
		var clone =3D elem.cloneNode(true),=0A=
				srcElements,=0A=
				destElements,=0A=
				i;=0A=
=0A=
		if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) =
&&=0A=
				(elem.nodeType =3D=3D=3D 1 || elem.nodeType =3D=3D=3D 11) && =
!jQuery.isXMLDoc(elem) ) {=0A=
			// IE copies events bound via attachEvent when using cloneNode.=0A=
			// Calling detachEvent on the clone will also remove the events=0A=
			// from the original. In order to get around this, we use some=0A=
			// proprietary methods to clear the events. Thanks to MooTools=0A=
			// guys for this hotness.=0A=
=0A=
			cloneFixAttributes( elem, clone );=0A=
=0A=
			// Using Sizzle here is crazy slow, so we use getElementsByTagName=0A=
			// instead=0A=
			srcElements =3D getAll( elem );=0A=
			destElements =3D getAll( clone );=0A=
=0A=
			// Weird iteration because IE will replace the length property=0A=
			// with an element if you are cloning the body and one of the=0A=
			// elements on the page has a name or id of "length"=0A=
			for ( i =3D 0; srcElements[i]; ++i ) {=0A=
				cloneFixAttributes( srcElements[i], destElements[i] );=0A=
			}=0A=
		}=0A=
=0A=
		// Copy the events from the original to the clone=0A=
		if ( dataAndEvents ) {=0A=
			cloneCopyEvent( elem, clone );=0A=
=0A=
			if ( deepDataAndEvents ) {=0A=
				srcElements =3D getAll( elem );=0A=
				destElements =3D getAll( clone );=0A=
=0A=
				for ( i =3D 0; srcElements[i]; ++i ) {=0A=
					cloneCopyEvent( srcElements[i], destElements[i] );=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		// Return the cloned set=0A=
		return clone;=0A=
	},=0A=
=0A=
	clean: function( elems, context, fragment, scripts ) {=0A=
		var checkScriptType;=0A=
=0A=
		context =3D context || document;=0A=
=0A=
		// !context.createElement fails in IE with an error but returns typeof =
'object'=0A=
		if ( typeof context.createElement =3D=3D=3D "undefined" ) {=0A=
			context =3D context.ownerDocument || context[0] && =
context[0].ownerDocument || document;=0A=
		}=0A=
=0A=
		var ret =3D [], j;=0A=
=0A=
		for ( var i =3D 0, elem; (elem =3D elems[i]) !=3D null; i++ ) {=0A=
			if ( typeof elem =3D=3D=3D "number" ) {=0A=
				elem +=3D "";=0A=
			}=0A=
=0A=
			if ( !elem ) {=0A=
				continue;=0A=
			}=0A=
=0A=
			// Convert html string into DOM nodes=0A=
			if ( typeof elem =3D=3D=3D "string" ) {=0A=
				if ( !rhtml.test( elem ) ) {=0A=
					elem =3D context.createTextNode( elem );=0A=
				} else {=0A=
					// Fix "XHTML"-style tags in all browsers=0A=
					elem =3D elem.replace(rxhtmlTag, "<$1></$2>");=0A=
=0A=
					// Trim whitespace, otherwise indexOf won't work as expected=0A=
					var tag =3D (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(),=0A=
						wrap =3D wrapMap[ tag ] || wrapMap._default,=0A=
						depth =3D wrap[0],=0A=
						div =3D context.createElement("div");=0A=
=0A=
					// Go to html and back, then peel off extra wrappers=0A=
					div.innerHTML =3D wrap[1] + elem + wrap[2];=0A=
=0A=
					// Move to the right depth=0A=
					while ( depth-- ) {=0A=
						div =3D div.lastChild;=0A=
					}=0A=
=0A=
					// Remove IE's autoinserted <tbody> from table fragments=0A=
					if ( !jQuery.support.tbody ) {=0A=
=0A=
						// String was a <table>, *may* have spurious <tbody>=0A=
						var hasBody =3D rtbody.test(elem),=0A=
							tbody =3D tag =3D=3D=3D "table" && !hasBody ?=0A=
								div.firstChild && div.firstChild.childNodes :=0A=
=0A=
								// String was a bare <thead> or <tfoot>=0A=
								wrap[1] =3D=3D=3D "<table>" && !hasBody ?=0A=
									div.childNodes :=0A=
									[];=0A=
=0A=
						for ( j =3D tbody.length - 1; j >=3D 0 ; --j ) {=0A=
							if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j =
].childNodes.length ) {=0A=
								tbody[ j ].parentNode.removeChild( tbody[ j ] );=0A=
							}=0A=
						}=0A=
					}=0A=
=0A=
					// IE completely kills leading whitespace when innerHTML is used=0A=
					if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( =
elem ) ) {=0A=
						div.insertBefore( context.createTextNode( =
rleadingWhitespace.exec(elem)[0] ), div.firstChild );=0A=
					}=0A=
=0A=
					elem =3D div.childNodes;=0A=
				}=0A=
			}=0A=
=0A=
			// Resets defaultChecked for any radios and checkboxes=0A=
			// about to be appended to the DOM in IE 6/7 (#8060)=0A=
			var len;=0A=
			if ( !jQuery.support.appendChecked ) {=0A=
				if ( elem[0] && typeof (len =3D elem.length) =3D=3D=3D "number" ) {=0A=
					for ( j =3D 0; j < len; j++ ) {=0A=
						findInputs( elem[j] );=0A=
					}=0A=
				} else {=0A=
					findInputs( elem );=0A=
				}=0A=
			}=0A=
=0A=
			if ( elem.nodeType ) {=0A=
				ret.push( elem );=0A=
			} else {=0A=
				ret =3D jQuery.merge( ret, elem );=0A=
			}=0A=
		}=0A=
=0A=
		if ( fragment ) {=0A=
			checkScriptType =3D function( elem ) {=0A=
				return !elem.type || rscriptType.test( elem.type );=0A=
			};=0A=
			for ( i =3D 0; ret[i]; i++ ) {=0A=
				if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type =
|| ret[i].type.toLowerCase() =3D=3D=3D "text/javascript") ) {=0A=
					scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( =
ret[i] ) : ret[i] );=0A=
=0A=
				} else {=0A=
					if ( ret[i].nodeType =3D=3D=3D 1 ) {=0A=
						var jsTags =3D jQuery.grep( ret[i].getElementsByTagName( "script" =
), checkScriptType );=0A=
=0A=
						ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );=0A=
					}=0A=
					fragment.appendChild( ret[i] );=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		return ret;=0A=
	},=0A=
=0A=
	cleanData: function( elems ) {=0A=
		var data, id, cache =3D jQuery.cache, internalKey =3D jQuery.expando, =
special =3D jQuery.event.special,=0A=
			deleteExpando =3D jQuery.support.deleteExpando;=0A=
=0A=
		for ( var i =3D 0, elem; (elem =3D elems[i]) !=3D null; i++ ) {=0A=
			if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {=0A=
				continue;=0A=
			}=0A=
=0A=
			id =3D elem[ jQuery.expando ];=0A=
=0A=
			if ( id ) {=0A=
				data =3D cache[ id ] && cache[ id ][ internalKey ];=0A=
=0A=
				if ( data && data.events ) {=0A=
					for ( var type in data.events ) {=0A=
						if ( special[ type ] ) {=0A=
							jQuery.event.remove( elem, type );=0A=
=0A=
						// This is a shortcut to avoid jQuery.event.remove's overhead=0A=
						} else {=0A=
							jQuery.removeEvent( elem, type, data.handle );=0A=
						}=0A=
					}=0A=
=0A=
					// Null the DOM reference to avoid IE6/7/8 leak (#7054)=0A=
					if ( data.handle ) {=0A=
						data.handle.elem =3D null;=0A=
					}=0A=
				}=0A=
=0A=
				if ( deleteExpando ) {=0A=
					delete elem[ jQuery.expando ];=0A=
=0A=
				} else if ( elem.removeAttribute ) {=0A=
					elem.removeAttribute( jQuery.expando );=0A=
				}=0A=
=0A=
				delete cache[ id ];=0A=
			}=0A=
		}=0A=
	}=0A=
});=0A=
=0A=
function evalScript( i, elem ) {=0A=
	if ( elem.src ) {=0A=
		jQuery.ajax({=0A=
			url: elem.src,=0A=
			async: false,=0A=
			dataType: "script"=0A=
		});=0A=
	} else {=0A=
		jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML =
|| "" ).replace( rcleanScript, "/*$0*/" ) );=0A=
	}=0A=
=0A=
	if ( elem.parentNode ) {=0A=
		elem.parentNode.removeChild( elem );=0A=
	}=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
var ralpha =3D /alpha\([^)]*\)/i,=0A=
	ropacity =3D /opacity=3D([^)]*)/,=0A=
	rdashAlpha =3D /-([a-z])/ig,=0A=
	// fixed for IE9, see #8346=0A=
	rupper =3D /([A-Z]|^ms)/g,=0A=
	rnumpx =3D /^-?\d+(?:px)?$/i,=0A=
	rnum =3D /^-?\d/,=0A=
	rrelNum =3D /^[+\-]=3D/,=0A=
	rrelNumFilter =3D /[^+\-\.\de]+/g,=0A=
=0A=
	cssShow =3D { position: "absolute", visibility: "hidden", display: =
"block" },=0A=
	cssWidth =3D [ "Left", "Right" ],=0A=
	cssHeight =3D [ "Top", "Bottom" ],=0A=
	curCSS,=0A=
=0A=
	getComputedStyle,=0A=
	currentStyle,=0A=
=0A=
	fcamelCase =3D function( all, letter ) {=0A=
		return letter.toUpperCase();=0A=
	};=0A=
=0A=
jQuery.fn.css =3D function( name, value ) {=0A=
	// Setting 'undefined' is a no-op=0A=
	if ( arguments.length =3D=3D=3D 2 && value =3D=3D=3D undefined ) {=0A=
		return this;=0A=
	}=0A=
=0A=
	return jQuery.access( this, name, value, true, function( elem, name, =
value ) {=0A=
		return value !=3D=3D undefined ?=0A=
			jQuery.style( elem, name, value ) :=0A=
			jQuery.css( elem, name );=0A=
	});=0A=
};=0A=
=0A=
jQuery.extend({=0A=
	// Add in style property hooks for overriding the default=0A=
	// behavior of getting and setting a style property=0A=
	cssHooks: {=0A=
		opacity: {=0A=
			get: function( elem, computed ) {=0A=
				if ( computed ) {=0A=
					// We should always get a number back from opacity=0A=
					var ret =3D curCSS( elem, "opacity", "opacity" );=0A=
					return ret =3D=3D=3D "" ? "1" : ret;=0A=
=0A=
				} else {=0A=
					return elem.style.opacity;=0A=
				}=0A=
			}=0A=
		}=0A=
	},=0A=
=0A=
	// Exclude the following css properties to add px=0A=
	cssNumber: {=0A=
		"zIndex": true,=0A=
		"fontWeight": true,=0A=
		"opacity": true,=0A=
		"zoom": true,=0A=
		"lineHeight": true,=0A=
		"widows": true,=0A=
		"orphans": true=0A=
	},=0A=
=0A=
	// Add in properties whose names you wish to fix before=0A=
	// setting or getting the value=0A=
	cssProps: {=0A=
		// normalize float css property=0A=
		"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"=0A=
	},=0A=
=0A=
	// Get and set the style property on a DOM Node=0A=
	style: function( elem, name, value, extra ) {=0A=
		// Don't set styles on text and comment nodes=0A=
		if ( !elem || elem.nodeType =3D=3D=3D 3 || elem.nodeType =3D=3D=3D 8 =
|| !elem.style ) {=0A=
			return;=0A=
		}=0A=
=0A=
		// Make sure that we're working with the right name=0A=
		var ret, type, origName =3D jQuery.camelCase( name ),=0A=
			style =3D elem.style, hooks =3D jQuery.cssHooks[ origName ];=0A=
=0A=
		name =3D jQuery.cssProps[ origName ] || origName;=0A=
=0A=
		// Check if we're setting a value=0A=
		if ( value !=3D=3D undefined ) {=0A=
			type =3D typeof value;=0A=
=0A=
			// Make sure that NaN and null values aren't set. See: #7116=0A=
			if ( type =3D=3D=3D "number" && isNaN( value ) || value =3D=3D null ) =
{=0A=
				return;=0A=
			}=0A=
=0A=
			// convert relative number strings (+=3D or -=3D) to relative =
numbers. #7345=0A=
			if ( type =3D=3D=3D "string" && rrelNum.test( value ) ) {=0A=
				value =3D +value.replace( rrelNumFilter, "" ) + parseFloat( =
jQuery.css( elem, name ) );=0A=
			}=0A=
=0A=
			// If a number was passed in, add 'px' to the (except for certain CSS =
properties)=0A=
			if ( type =3D=3D=3D "number" && !jQuery.cssNumber[ origName ] ) {=0A=
				value +=3D "px";=0A=
			}=0A=
=0A=
			// If a hook was provided, use that value, otherwise just set the =
specified value=0A=
			if ( !hooks || !("set" in hooks) || (value =3D hooks.set( elem, value =
)) !=3D=3D undefined ) {=0A=
				// Wrapped to prevent IE from throwing errors when 'invalid' values =
are provided=0A=
				// Fixes bug #5509=0A=
				try {=0A=
					style[ name ] =3D value;=0A=
				} catch(e) {}=0A=
			}=0A=
=0A=
		} else {=0A=
			// If a hook was provided get the non-computed value from there=0A=
			if ( hooks && "get" in hooks && (ret =3D hooks.get( elem, false, =
extra )) !=3D=3D undefined ) {=0A=
				return ret;=0A=
			}=0A=
=0A=
			// Otherwise just get the value from the style object=0A=
			return style[ name ];=0A=
		}=0A=
	},=0A=
=0A=
	css: function( elem, name, extra ) {=0A=
		var ret, hooks;=0A=
=0A=
		// Make sure that we're working with the right name=0A=
		name =3D jQuery.camelCase( name );=0A=
		hooks =3D jQuery.cssHooks[ name ];=0A=
		name =3D jQuery.cssProps[ name ] || name;=0A=
=0A=
		// cssFloat needs a special treatment=0A=
		if ( name =3D=3D=3D "cssFloat" ) {=0A=
			name =3D "float";=0A=
		}=0A=
=0A=
		// If a hook was provided get the computed value from there=0A=
		if ( hooks && "get" in hooks && (ret =3D hooks.get( elem, true, extra =
)) !=3D=3D undefined ) {=0A=
			return ret;=0A=
=0A=
		// Otherwise, if a way to get the computed value exists, use that=0A=
		} else if ( curCSS ) {=0A=
			return curCSS( elem, name );=0A=
		}=0A=
	},=0A=
=0A=
	// A method for quickly swapping in/out CSS properties to get correct =
calculations=0A=
	swap: function( elem, options, callback ) {=0A=
		var old =3D {};=0A=
=0A=
		// Remember the old values, and insert the new ones=0A=
		for ( var name in options ) {=0A=
			old[ name ] =3D elem.style[ name ];=0A=
			elem.style[ name ] =3D options[ name ];=0A=
		}=0A=
=0A=
		callback.call( elem );=0A=
=0A=
		// Revert the old values=0A=
		for ( name in options ) {=0A=
			elem.style[ name ] =3D old[ name ];=0A=
		}=0A=
	},=0A=
=0A=
	camelCase: function( string ) {=0A=
		return string.replace( rdashAlpha, fcamelCase );=0A=
	}=0A=
});=0A=
=0A=
// DEPRECATED, Use jQuery.css() instead=0A=
jQuery.curCSS =3D jQuery.css;=0A=
=0A=
jQuery.each(["height", "width"], function( i, name ) {=0A=
	jQuery.cssHooks[ name ] =3D {=0A=
		get: function( elem, computed, extra ) {=0A=
			var val;=0A=
=0A=
			if ( computed ) {=0A=
				if ( elem.offsetWidth !=3D=3D 0 ) {=0A=
					val =3D getWH( elem, name, extra );=0A=
=0A=
				} else {=0A=
					jQuery.swap( elem, cssShow, function() {=0A=
						val =3D getWH( elem, name, extra );=0A=
					});=0A=
				}=0A=
=0A=
				if ( val <=3D 0 ) {=0A=
					val =3D curCSS( elem, name, name );=0A=
=0A=
					if ( val =3D=3D=3D "0px" && currentStyle ) {=0A=
						val =3D currentStyle( elem, name, name );=0A=
					}=0A=
=0A=
					if ( val !=3D null ) {=0A=
						// Should return "auto" instead of 0, use 0 for=0A=
						// temporary backwards-compat=0A=
						return val =3D=3D=3D "" || val =3D=3D=3D "auto" ? "0px" : val;=0A=
					}=0A=
				}=0A=
=0A=
				if ( val < 0 || val =3D=3D null ) {=0A=
					val =3D elem.style[ name ];=0A=
=0A=
					// Should return "auto" instead of 0, use 0 for=0A=
					// temporary backwards-compat=0A=
					return val =3D=3D=3D "" || val =3D=3D=3D "auto" ? "0px" : val;=0A=
				}=0A=
=0A=
				return typeof val =3D=3D=3D "string" ? val : val + "px";=0A=
			}=0A=
		},=0A=
=0A=
		set: function( elem, value ) {=0A=
			if ( rnumpx.test( value ) ) {=0A=
				// ignore negative width and height values #1599=0A=
				value =3D parseFloat(value);=0A=
=0A=
				if ( value >=3D 0 ) {=0A=
					return value + "px";=0A=
				}=0A=
=0A=
			} else {=0A=
				return value;=0A=
			}=0A=
		}=0A=
	};=0A=
});=0A=
=0A=
if ( !jQuery.support.opacity ) {=0A=
	jQuery.cssHooks.opacity =3D {=0A=
		get: function( elem, computed ) {=0A=
			// IE uses filters for opacity=0A=
			return ropacity.test( (computed && elem.currentStyle ? =
elem.currentStyle.filter : elem.style.filter) || "" ) ?=0A=
				( parseFloat( RegExp.$1 ) / 100 ) + "" :=0A=
				computed ? "1" : "";=0A=
		},=0A=
=0A=
		set: function( elem, value ) {=0A=
			var style =3D elem.style,=0A=
				currentStyle =3D elem.currentStyle;=0A=
=0A=
			// IE has trouble with opacity if it does not have layout=0A=
			// Force it by setting the zoom level=0A=
			style.zoom =3D 1;=0A=
=0A=
			// Set the alpha filter to set the opacity=0A=
			var opacity =3D jQuery.isNaN( value ) ?=0A=
				"" :=0A=
				"alpha(opacity=3D" + value * 100 + ")",=0A=
				filter =3D currentStyle && currentStyle.filter || style.filter || "";=0A=
=0A=
			style.filter =3D ralpha.test( filter ) ?=0A=
				filter.replace( ralpha, opacity ) :=0A=
				filter + " " + opacity;=0A=
		}=0A=
	};=0A=
}=0A=
=0A=
jQuery(function() {=0A=
	// This hook cannot be added until DOM ready because the support test=0A=
	// for it is not run until after DOM ready=0A=
	if ( !jQuery.support.reliableMarginRight ) {=0A=
		jQuery.cssHooks.marginRight =3D {=0A=
			get: function( elem, computed ) {=0A=
				// WebKit Bug 13343 - getComputedStyle returns wrong value for =
margin-right=0A=
				// Work around by temporarily setting element display to inline-block=0A=
				var ret;=0A=
				jQuery.swap( elem, { "display": "inline-block" }, function() {=0A=
					if ( computed ) {=0A=
						ret =3D curCSS( elem, "margin-right", "marginRight" );=0A=
					} else {=0A=
						ret =3D elem.style.marginRight;=0A=
					}=0A=
				});=0A=
				return ret;=0A=
			}=0A=
		};=0A=
	}=0A=
});=0A=
=0A=
if ( document.defaultView && document.defaultView.getComputedStyle ) {=0A=
	getComputedStyle =3D function( elem, name ) {=0A=
		var ret, defaultView, computedStyle;=0A=
=0A=
		name =3D name.replace( rupper, "-$1" ).toLowerCase();=0A=
=0A=
		if ( !(defaultView =3D elem.ownerDocument.defaultView) ) {=0A=
			return undefined;=0A=
		}=0A=
=0A=
		if ( (computedStyle =3D defaultView.getComputedStyle( elem, null )) ) {=0A=
			ret =3D computedStyle.getPropertyValue( name );=0A=
			if ( ret =3D=3D=3D "" && !jQuery.contains( =
elem.ownerDocument.documentElement, elem ) ) {=0A=
				ret =3D jQuery.style( elem, name );=0A=
			}=0A=
		}=0A=
=0A=
		return ret;=0A=
	};=0A=
}=0A=
=0A=
if ( document.documentElement.currentStyle ) {=0A=
	currentStyle =3D function( elem, name ) {=0A=
		var left,=0A=
			ret =3D elem.currentStyle && elem.currentStyle[ name ],=0A=
			rsLeft =3D elem.runtimeStyle && elem.runtimeStyle[ name ],=0A=
			style =3D elem.style;=0A=
=0A=
		// From the awesome hack by Dean Edwards=0A=
		// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291=0A=
=0A=
		// If we're not dealing with a regular pixel number=0A=
		// but a number that has a weird ending, we need to convert it to =
pixels=0A=
		if ( !rnumpx.test( ret ) && rnum.test( ret ) ) {=0A=
			// Remember the original values=0A=
			left =3D style.left;=0A=
=0A=
			// Put in the new values to get a computed value out=0A=
			if ( rsLeft ) {=0A=
				elem.runtimeStyle.left =3D elem.currentStyle.left;=0A=
			}=0A=
			style.left =3D name =3D=3D=3D "fontSize" ? "1em" : (ret || 0);=0A=
			ret =3D style.pixelLeft + "px";=0A=
=0A=
			// Revert the changed values=0A=
			style.left =3D left;=0A=
			if ( rsLeft ) {=0A=
				elem.runtimeStyle.left =3D rsLeft;=0A=
			}=0A=
		}=0A=
=0A=
		return ret =3D=3D=3D "" ? "auto" : ret;=0A=
	};=0A=
}=0A=
=0A=
curCSS =3D getComputedStyle || currentStyle;=0A=
=0A=
function getWH( elem, name, extra ) {=0A=
	var which =3D name =3D=3D=3D "width" ? cssWidth : cssHeight,=0A=
		val =3D name =3D=3D=3D "width" ? elem.offsetWidth : elem.offsetHeight;=0A=
=0A=
	if ( extra =3D=3D=3D "border" ) {=0A=
		return val;=0A=
	}=0A=
=0A=
	jQuery.each( which, function() {=0A=
		if ( !extra ) {=0A=
			val -=3D parseFloat(jQuery.css( elem, "padding" + this )) || 0;=0A=
		}=0A=
=0A=
		if ( extra =3D=3D=3D "margin" ) {=0A=
			val +=3D parseFloat(jQuery.css( elem, "margin" + this )) || 0;=0A=
=0A=
		} else {=0A=
			val -=3D parseFloat(jQuery.css( elem, "border" + this + "Width" )) || =
0;=0A=
		}=0A=
	});=0A=
=0A=
	return val;=0A=
}=0A=
=0A=
if ( jQuery.expr && jQuery.expr.filters ) {=0A=
	jQuery.expr.filters.hidden =3D function( elem ) {=0A=
		var width =3D elem.offsetWidth,=0A=
			height =3D elem.offsetHeight;=0A=
=0A=
		return (width =3D=3D=3D 0 && height =3D=3D=3D 0) || =
(!jQuery.support.reliableHiddenOffsets && (elem.style.display || =
jQuery.css( elem, "display" )) =3D=3D=3D "none");=0A=
	};=0A=
=0A=
	jQuery.expr.filters.visible =3D function( elem ) {=0A=
		return !jQuery.expr.filters.hidden( elem );=0A=
	};=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
var r20 =3D /%20/g,=0A=
	rbracket =3D /\[\]$/,=0A=
	rCRLF =3D /\r?\n/g,=0A=
	rhash =3D /#.*$/,=0A=
	rheaders =3D /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r =
character at EOL=0A=
	rinput =3D =
/^(?:color|date|datetime|email|hidden|month|number|password|range|search|=
tel|text|time|url|week)$/i,=0A=
	// #7653, #8125, #8152: local protocol detection=0A=
	rlocalProtocol =3D =
/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,=0A=
	rnoContent =3D /^(?:GET|HEAD)$/,=0A=
	rprotocol =3D /^\/\//,=0A=
	rquery =3D /\?/,=0A=
	rscript =3D /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,=0A=
	rselectTextarea =3D /^(?:select|textarea)/i,=0A=
	rspacesAjax =3D /\s+/,=0A=
	rts =3D /([?&])_=3D[^&]*/,=0A=
	rurl =3D /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,=0A=
=0A=
	// Keep a copy of the old load method=0A=
	_load =3D jQuery.fn.load,=0A=
=0A=
	/* Prefilters=0A=
	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js =
for an example)=0A=
	 * 2) These are called:=0A=
	 *    - BEFORE asking for a transport=0A=
	 *    - AFTER param serialization (s.data is a string if s.processData =
is true)=0A=
	 * 3) key is the dataType=0A=
	 * 4) the catchall symbol "*" can be used=0A=
	 * 5) execution will start with transport dataType and THEN continue =
down to "*" if needed=0A=
	 */=0A=
	prefilters =3D {},=0A=
=0A=
	/* Transports bindings=0A=
	 * 1) key is the dataType=0A=
	 * 2) the catchall symbol "*" can be used=0A=
	 * 3) selection will start with transport dataType and THEN go to "*" =
if needed=0A=
	 */=0A=
	transports =3D {},=0A=
=0A=
	// Document location=0A=
	ajaxLocation,=0A=
=0A=
	// Document location segments=0A=
	ajaxLocParts;=0A=
=0A=
// #8138, IE may throw an exception when accessing=0A=
// a field from window.location if document.domain has been set=0A=
try {=0A=
	ajaxLocation =3D location.href;=0A=
} catch( e ) {=0A=
	// Use the href attribute of an A element=0A=
	// since IE will modify it given document.location=0A=
	ajaxLocation =3D document.createElement( "a" );=0A=
	ajaxLocation.href =3D "";=0A=
	ajaxLocation =3D ajaxLocation.href;=0A=
}=0A=
=0A=
// Segment location into parts=0A=
ajaxLocParts =3D rurl.exec( ajaxLocation.toLowerCase() ) || [];=0A=
=0A=
// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport=0A=
function addToPrefiltersOrTransports( structure ) {=0A=
=0A=
	// dataTypeExpression is optional and defaults to "*"=0A=
	return function( dataTypeExpression, func ) {=0A=
=0A=
		if ( typeof dataTypeExpression !=3D=3D "string" ) {=0A=
			func =3D dataTypeExpression;=0A=
			dataTypeExpression =3D "*";=0A=
		}=0A=
=0A=
		if ( jQuery.isFunction( func ) ) {=0A=
			var dataTypes =3D dataTypeExpression.toLowerCase().split( rspacesAjax =
),=0A=
				i =3D 0,=0A=
				length =3D dataTypes.length,=0A=
				dataType,=0A=
				list,=0A=
				placeBefore;=0A=
=0A=
			// For each dataType in the dataTypeExpression=0A=
			for(; i < length; i++ ) {=0A=
				dataType =3D dataTypes[ i ];=0A=
				// We control if we're asked to add before=0A=
				// any existing element=0A=
				placeBefore =3D /^\+/.test( dataType );=0A=
				if ( placeBefore ) {=0A=
					dataType =3D dataType.substr( 1 ) || "*";=0A=
				}=0A=
				list =3D structure[ dataType ] =3D structure[ dataType ] || [];=0A=
				// then we add to the structure accordingly=0A=
				list[ placeBefore ? "unshift" : "push" ]( func );=0A=
			}=0A=
		}=0A=
	};=0A=
}=0A=
=0A=
// Base inspection function for prefilters and transports=0A=
function inspectPrefiltersOrTransports( structure, options, =
originalOptions, jqXHR,=0A=
		dataType /* internal */, inspected /* internal */ ) {=0A=
=0A=
	dataType =3D dataType || options.dataTypes[ 0 ];=0A=
	inspected =3D inspected || {};=0A=
=0A=
	inspected[ dataType ] =3D true;=0A=
=0A=
	var list =3D structure[ dataType ],=0A=
		i =3D 0,=0A=
		length =3D list ? list.length : 0,=0A=
		executeOnly =3D ( structure =3D=3D=3D prefilters ),=0A=
		selection;=0A=
=0A=
	for(; i < length && ( executeOnly || !selection ); i++ ) {=0A=
		selection =3D list[ i ]( options, originalOptions, jqXHR );=0A=
		// If we got redirected to another dataType=0A=
		// we try there if executing only and not done already=0A=
		if ( typeof selection =3D=3D=3D "string" ) {=0A=
			if ( !executeOnly || inspected[ selection ] ) {=0A=
				selection =3D undefined;=0A=
			} else {=0A=
				options.dataTypes.unshift( selection );=0A=
				selection =3D inspectPrefiltersOrTransports(=0A=
						structure, options, originalOptions, jqXHR, selection, inspected );=0A=
			}=0A=
		}=0A=
	}=0A=
	// If we're only executing or nothing was selected=0A=
	// we try the catchall dataType if not done already=0A=
	if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {=0A=
		selection =3D inspectPrefiltersOrTransports(=0A=
				structure, options, originalOptions, jqXHR, "*", inspected );=0A=
	}=0A=
	// unnecessary when only executing (prefilters)=0A=
	// but it'll be ignored by the caller in that case=0A=
	return selection;=0A=
}=0A=
=0A=
jQuery.fn.extend({=0A=
	load: function( url, params, callback ) {=0A=
		if ( typeof url !=3D=3D "string" && _load ) {=0A=
			return _load.apply( this, arguments );=0A=
=0A=
		// Don't do a request if no elements are being requested=0A=
		} else if ( !this.length ) {=0A=
			return this;=0A=
		}=0A=
=0A=
		var off =3D url.indexOf( " " );=0A=
		if ( off >=3D 0 ) {=0A=
			var selector =3D url.slice( off, url.length );=0A=
			url =3D url.slice( 0, off );=0A=
		}=0A=
=0A=
		// Default to a GET request=0A=
		var type =3D "GET";=0A=
=0A=
		// If the second parameter was provided=0A=
		if ( params ) {=0A=
			// If it's a function=0A=
			if ( jQuery.isFunction( params ) ) {=0A=
				// We assume that it's the callback=0A=
				callback =3D params;=0A=
				params =3D undefined;=0A=
=0A=
			// Otherwise, build a param string=0A=
			} else if ( typeof params =3D=3D=3D "object" ) {=0A=
				params =3D jQuery.param( params, jQuery.ajaxSettings.traditional );=0A=
				type =3D "POST";=0A=
			}=0A=
		}=0A=
=0A=
		var self =3D this;=0A=
=0A=
		// Request the remote document=0A=
		jQuery.ajax({=0A=
			url: url,=0A=
			type: type,=0A=
			dataType: "html",=0A=
			data: params,=0A=
			// Complete callback (responseText is used internally)=0A=
			complete: function( jqXHR, status, responseText ) {=0A=
				// Store the response as specified by the jqXHR object=0A=
				responseText =3D jqXHR.responseText;=0A=
				// If successful, inject the HTML into all the matched elements=0A=
				if ( jqXHR.isResolved() ) {=0A=
					// #4825: Get the actual response in case=0A=
					// a dataFilter is present in ajaxSettings=0A=
					jqXHR.done(function( r ) {=0A=
						responseText =3D r;=0A=
					});=0A=
					// See if a selector was specified=0A=
					self.html( selector ?=0A=
						// Create a dummy div to hold the results=0A=
						jQuery("<div>")=0A=
							// inject the contents of the document in, removing the scripts=0A=
							// to avoid any 'Permission Denied' errors in IE=0A=
							.append(responseText.replace(rscript, ""))=0A=
=0A=
							// Locate the specified elements=0A=
							.find(selector) :=0A=
=0A=
						// If not, just inject the full result=0A=
						responseText );=0A=
				}=0A=
=0A=
				if ( callback ) {=0A=
					self.each( callback, [ responseText, status, jqXHR ] );=0A=
				}=0A=
			}=0A=
		});=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	serialize: function() {=0A=
		return jQuery.param( this.serializeArray() );=0A=
	},=0A=
=0A=
	serializeArray: function() {=0A=
		return this.map(function(){=0A=
			return this.elements ? jQuery.makeArray( this.elements ) : this;=0A=
		})=0A=
		.filter(function(){=0A=
			return this.name && !this.disabled &&=0A=
				( this.checked || rselectTextarea.test( this.nodeName ) ||=0A=
					rinput.test( this.type ) );=0A=
		})=0A=
		.map(function( i, elem ){=0A=
			var val =3D jQuery( this ).val();=0A=
=0A=
			return val =3D=3D null ?=0A=
				null :=0A=
				jQuery.isArray( val ) ?=0A=
					jQuery.map( val, function( val, i ){=0A=
						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };=0A=
					}) :=0A=
					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };=0A=
		}).get();=0A=
	}=0A=
});=0A=
=0A=
// Attach a bunch of functions for handling common AJAX events=0A=
jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess =
ajaxSend".split( " " ), function( i, o ){=0A=
	jQuery.fn[ o ] =3D function( f ){=0A=
		return this.bind( o, f );=0A=
	};=0A=
});=0A=
=0A=
jQuery.each( [ "get", "post" ], function( i, method ) {=0A=
	jQuery[ method ] =3D function( url, data, callback, type ) {=0A=
		// shift arguments if data argument was omitted=0A=
		if ( jQuery.isFunction( data ) ) {=0A=
			type =3D type || callback;=0A=
			callback =3D data;=0A=
			data =3D undefined;=0A=
		}=0A=
=0A=
		return jQuery.ajax({=0A=
			type: method,=0A=
			url: url,=0A=
			data: data,=0A=
			success: callback,=0A=
			dataType: type=0A=
		});=0A=
	};=0A=
});=0A=
=0A=
jQuery.extend({=0A=
=0A=
	getScript: function( url, callback ) {=0A=
		return jQuery.get( url, undefined, callback, "script" );=0A=
	},=0A=
=0A=
	getJSON: function( url, data, callback ) {=0A=
		return jQuery.get( url, data, callback, "json" );=0A=
	},=0A=
=0A=
	// Creates a full fledged settings object into target=0A=
	// with both ajaxSettings and settings fields.=0A=
	// If target is omitted, writes into ajaxSettings.=0A=
	ajaxSetup: function ( target, settings ) {=0A=
		if ( !settings ) {=0A=
			// Only one parameter, we extend ajaxSettings=0A=
			settings =3D target;=0A=
			target =3D jQuery.extend( true, jQuery.ajaxSettings, settings );=0A=
		} else {=0A=
			// target was provided, we extend into it=0A=
			jQuery.extend( true, target, jQuery.ajaxSettings, settings );=0A=
		}=0A=
		// Flatten fields we don't want deep extended=0A=
		for( var field in { context: 1, url: 1 } ) {=0A=
			if ( field in settings ) {=0A=
				target[ field ] =3D settings[ field ];=0A=
			} else if( field in jQuery.ajaxSettings ) {=0A=
				target[ field ] =3D jQuery.ajaxSettings[ field ];=0A=
			}=0A=
		}=0A=
		return target;=0A=
	},=0A=
=0A=
	ajaxSettings: {=0A=
		url: ajaxLocation,=0A=
		isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),=0A=
		global: true,=0A=
		type: "GET",=0A=
		contentType: "application/x-www-form-urlencoded",=0A=
		processData: true,=0A=
		async: true,=0A=
		/*=0A=
		timeout: 0,=0A=
		data: null,=0A=
		dataType: null,=0A=
		username: null,=0A=
		password: null,=0A=
		cache: null,=0A=
		traditional: false,=0A=
		headers: {},=0A=
		*/=0A=
=0A=
		accepts: {=0A=
			xml: "application/xml, text/xml",=0A=
			html: "text/html",=0A=
			text: "text/plain",=0A=
			json: "application/json, text/javascript",=0A=
			"*": "*/*"=0A=
		},=0A=
=0A=
		contents: {=0A=
			xml: /xml/,=0A=
			html: /html/,=0A=
			json: /json/=0A=
		},=0A=
=0A=
		responseFields: {=0A=
			xml: "responseXML",=0A=
			text: "responseText"=0A=
		},=0A=
=0A=
		// List of data converters=0A=
		// 1) key format is "source_type destination_type" (a single space =
in-between)=0A=
		// 2) the catchall symbol "*" can be used for source_type=0A=
		converters: {=0A=
=0A=
			// Convert anything to text=0A=
			"* text": window.String,=0A=
=0A=
			// Text to html (true =3D no transformation)=0A=
			"text html": true,=0A=
=0A=
			// Evaluate text as a json expression=0A=
			"text json": jQuery.parseJSON,=0A=
=0A=
			// Parse text as xml=0A=
			"text xml": jQuery.parseXML=0A=
		}=0A=
	},=0A=
=0A=
	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),=0A=
	ajaxTransport: addToPrefiltersOrTransports( transports ),=0A=
=0A=
	// Main method=0A=
	ajax: function( url, options ) {=0A=
=0A=
		// If url is an object, simulate pre-1.5 signature=0A=
		if ( typeof url =3D=3D=3D "object" ) {=0A=
			options =3D url;=0A=
			url =3D undefined;=0A=
		}=0A=
=0A=
		// Force options to be an object=0A=
		options =3D options || {};=0A=
=0A=
		var // Create the final options object=0A=
			s =3D jQuery.ajaxSetup( {}, options ),=0A=
			// Callbacks context=0A=
			callbackContext =3D s.context || s,=0A=
			// Context for global events=0A=
			// It's the callbackContext if one was provided in the options=0A=
			// and if it's a DOM node or a jQuery collection=0A=
			globalEventContext =3D callbackContext !=3D=3D s &&=0A=
				( callbackContext.nodeType || callbackContext instanceof jQuery ) ?=0A=
						jQuery( callbackContext ) : jQuery.event,=0A=
			// Deferreds=0A=
			deferred =3D jQuery.Deferred(),=0A=
			completeDeferred =3D jQuery._Deferred(),=0A=
			// Status-dependent callbacks=0A=
			statusCode =3D s.statusCode || {},=0A=
			// ifModified key=0A=
			ifModifiedKey,=0A=
			// Headers (they are sent all at once)=0A=
			requestHeaders =3D {},=0A=
			requestHeadersNames =3D {},=0A=
			// Response headers=0A=
			responseHeadersString,=0A=
			responseHeaders,=0A=
			// transport=0A=
			transport,=0A=
			// timeout handle=0A=
			timeoutTimer,=0A=
			// Cross-domain detection vars=0A=
			parts,=0A=
			// The jqXHR state=0A=
			state =3D 0,=0A=
			// To know if global events are to be dispatched=0A=
			fireGlobals,=0A=
			// Loop variable=0A=
			i,=0A=
			// Fake xhr=0A=
			jqXHR =3D {=0A=
=0A=
				readyState: 0,=0A=
=0A=
				// Caches the header=0A=
				setRequestHeader: function( name, value ) {=0A=
					if ( !state ) {=0A=
						var lname =3D name.toLowerCase();=0A=
						name =3D requestHeadersNames[ lname ] =3D requestHeadersNames[ =
lname ] || name;=0A=
						requestHeaders[ name ] =3D value;=0A=
					}=0A=
					return this;=0A=
				},=0A=
=0A=
				// Raw string=0A=
				getAllResponseHeaders: function() {=0A=
					return state =3D=3D=3D 2 ? responseHeadersString : null;=0A=
				},=0A=
=0A=
				// Builds headers hashtable if needed=0A=
				getResponseHeader: function( key ) {=0A=
					var match;=0A=
					if ( state =3D=3D=3D 2 ) {=0A=
						if ( !responseHeaders ) {=0A=
							responseHeaders =3D {};=0A=
							while( ( match =3D rheaders.exec( responseHeadersString ) ) ) {=0A=
								responseHeaders[ match[1].toLowerCase() ] =3D match[ 2 ];=0A=
							}=0A=
						}=0A=
						match =3D responseHeaders[ key.toLowerCase() ];=0A=
					}=0A=
					return match =3D=3D=3D undefined ? null : match;=0A=
				},=0A=
=0A=
				// Overrides response content-type header=0A=
				overrideMimeType: function( type ) {=0A=
					if ( !state ) {=0A=
						s.mimeType =3D type;=0A=
					}=0A=
					return this;=0A=
				},=0A=
=0A=
				// Cancel the request=0A=
				abort: function( statusText ) {=0A=
					statusText =3D statusText || "abort";=0A=
					if ( transport ) {=0A=
						transport.abort( statusText );=0A=
					}=0A=
					done( 0, statusText );=0A=
					return this;=0A=
				}=0A=
			};=0A=
=0A=
		// Callback for when everything is done=0A=
		// It is defined here because jslint complains if it is declared=0A=
		// at the end of the function (which would be more logical and =
readable)=0A=
		function done( status, statusText, responses, headers ) {=0A=
=0A=
			// Called once=0A=
			if ( state =3D=3D=3D 2 ) {=0A=
				return;=0A=
			}=0A=
=0A=
			// State is "done" now=0A=
			state =3D 2;=0A=
=0A=
			// Clear timeout if it exists=0A=
			if ( timeoutTimer ) {=0A=
				clearTimeout( timeoutTimer );=0A=
			}=0A=
=0A=
			// Dereference transport for early garbage collection=0A=
			// (no matter how long the jqXHR object will be used)=0A=
			transport =3D undefined;=0A=
=0A=
			// Cache response headers=0A=
			responseHeadersString =3D headers || "";=0A=
=0A=
			// Set readyState=0A=
			jqXHR.readyState =3D status ? 4 : 0;=0A=
=0A=
			var isSuccess,=0A=
				success,=0A=
				error,=0A=
				response =3D responses ? ajaxHandleResponses( s, jqXHR, responses ) =
: undefined,=0A=
				lastModified,=0A=
				etag;=0A=
=0A=
			// If successful, handle type chaining=0A=
			if ( status >=3D 200 && status < 300 || status =3D=3D=3D 304 ) {=0A=
=0A=
				// Set the If-Modified-Since and/or If-None-Match header, if in =
ifModified mode.=0A=
				if ( s.ifModified ) {=0A=
=0A=
					if ( ( lastModified =3D jqXHR.getResponseHeader( "Last-Modified" ) =
) ) {=0A=
						jQuery.lastModified[ ifModifiedKey ] =3D lastModified;=0A=
					}=0A=
					if ( ( etag =3D jqXHR.getResponseHeader( "Etag" ) ) ) {=0A=
						jQuery.etag[ ifModifiedKey ] =3D etag;=0A=
					}=0A=
				}=0A=
=0A=
				// If not modified=0A=
				if ( status =3D=3D=3D 304 ) {=0A=
=0A=
					statusText =3D "notmodified";=0A=
					isSuccess =3D true;=0A=
=0A=
				// If we have data=0A=
				} else {=0A=
=0A=
					try {=0A=
						success =3D ajaxConvert( s, response );=0A=
						statusText =3D "success";=0A=
						isSuccess =3D true;=0A=
					} catch(e) {=0A=
						// We have a parsererror=0A=
						statusText =3D "parsererror";=0A=
						error =3D e;=0A=
					}=0A=
				}=0A=
			} else {=0A=
				// We extract error from statusText=0A=
				// then normalize statusText and status for non-aborts=0A=
				error =3D statusText;=0A=
				if( !statusText || status ) {=0A=
					statusText =3D "error";=0A=
					if ( status < 0 ) {=0A=
						status =3D 0;=0A=
					}=0A=
				}=0A=
			}=0A=
=0A=
			// Set data for the fake xhr object=0A=
			jqXHR.status =3D status;=0A=
			jqXHR.statusText =3D statusText;=0A=
=0A=
			// Success/Error=0A=
			if ( isSuccess ) {=0A=
				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR =
] );=0A=
			} else {=0A=
				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );=0A=
			}=0A=
=0A=
			// Status-dependent callbacks=0A=
			jqXHR.statusCode( statusCode );=0A=
			statusCode =3D undefined;=0A=
=0A=
			if ( fireGlobals ) {=0A=
				globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : =
"Error" ),=0A=
						[ jqXHR, s, isSuccess ? success : error ] );=0A=
			}=0A=
=0A=
			// Complete=0A=
			completeDeferred.resolveWith( callbackContext, [ jqXHR, statusText ] =
);=0A=
=0A=
			if ( fireGlobals ) {=0A=
				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s] );=0A=
				// Handle the global AJAX counter=0A=
				if ( !( --jQuery.active ) ) {=0A=
					jQuery.event.trigger( "ajaxStop" );=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		// Attach deferreds=0A=
		deferred.promise( jqXHR );=0A=
		jqXHR.success =3D jqXHR.done;=0A=
		jqXHR.error =3D jqXHR.fail;=0A=
		jqXHR.complete =3D completeDeferred.done;=0A=
=0A=
		// Status-dependent callbacks=0A=
		jqXHR.statusCode =3D function( map ) {=0A=
			if ( map ) {=0A=
				var tmp;=0A=
				if ( state < 2 ) {=0A=
					for( tmp in map ) {=0A=
						statusCode[ tmp ] =3D [ statusCode[tmp], map[tmp] ];=0A=
					}=0A=
				} else {=0A=
					tmp =3D map[ jqXHR.status ];=0A=
					jqXHR.then( tmp, tmp );=0A=
				}=0A=
			}=0A=
			return this;=0A=
		};=0A=
=0A=
		// Remove hash character (#7531: and string promotion)=0A=
		// Add protocol if not provided (#5866: IE7 issue with protocol-less =
urls)=0A=
		// We also use the url parameter if available=0A=
		s.url =3D ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( =
rprotocol, ajaxLocParts[ 1 ] + "//" );=0A=
=0A=
		// Extract dataTypes list=0A=
		s.dataTypes =3D jQuery.trim( s.dataType || "*" ).toLowerCase().split( =
rspacesAjax );=0A=
=0A=
		// Determine if a cross-domain request is in order=0A=
		if ( s.crossDomain =3D=3D null ) {=0A=
			parts =3D rurl.exec( s.url.toLowerCase() );=0A=
			s.crossDomain =3D !!( parts &&=0A=
				( parts[ 1 ] !=3D ajaxLocParts[ 1 ] || parts[ 2 ] !=3D ajaxLocParts[ =
2 ] ||=0A=
					( parts[ 3 ] || ( parts[ 1 ] =3D=3D=3D "http:" ? 80 : 443 ) ) !=3D=0A=
						( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] =3D=3D=3D "http:" ? 80 =
: 443 ) ) )=0A=
			);=0A=
		}=0A=
=0A=
		// Convert data if not already a string=0A=
		if ( s.data && s.processData && typeof s.data !=3D=3D "string" ) {=0A=
			s.data =3D jQuery.param( s.data, s.traditional );=0A=
		}=0A=
=0A=
		// Apply prefilters=0A=
		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );=0A=
=0A=
		// If request was aborted inside a prefiler, stop there=0A=
		if ( state =3D=3D=3D 2 ) {=0A=
			return false;=0A=
		}=0A=
=0A=
		// We can fire global events as of now if asked to=0A=
		fireGlobals =3D s.global;=0A=
=0A=
		// Uppercase the type=0A=
		s.type =3D s.type.toUpperCase();=0A=
=0A=
		// Determine if request has content=0A=
		s.hasContent =3D !rnoContent.test( s.type );=0A=
=0A=
		// Watch for a new set of requests=0A=
		if ( fireGlobals && jQuery.active++ =3D=3D=3D 0 ) {=0A=
			jQuery.event.trigger( "ajaxStart" );=0A=
		}=0A=
=0A=
		// More options handling for requests with no content=0A=
		if ( !s.hasContent ) {=0A=
=0A=
			// If data is available, append data to url=0A=
			if ( s.data ) {=0A=
				s.url +=3D ( rquery.test( s.url ) ? "&" : "?" ) + s.data;=0A=
			}=0A=
=0A=
			// Get ifModifiedKey before adding the anti-cache parameter=0A=
			ifModifiedKey =3D s.url;=0A=
=0A=
			// Add anti-cache in url if needed=0A=
			if ( s.cache =3D=3D=3D false ) {=0A=
=0A=
				var ts =3D jQuery.now(),=0A=
					// try replacing _=3D if it is there=0A=
					ret =3D s.url.replace( rts, "$1_=3D" + ts );=0A=
=0A=
				// if nothing was replaced, add timestamp to the end=0A=
				s.url =3D ret + ( (ret =3D=3D=3D s.url ) ? ( rquery.test( s.url ) ? =
"&" : "?" ) + "_=3D" + ts : "" );=0A=
			}=0A=
		}=0A=
=0A=
		// Set the correct header, if data is being sent=0A=
		if ( s.data && s.hasContent && s.contentType !=3D=3D false || =
options.contentType ) {=0A=
			jqXHR.setRequestHeader( "Content-Type", s.contentType );=0A=
		}=0A=
=0A=
		// Set the If-Modified-Since and/or If-None-Match header, if in =
ifModified mode.=0A=
		if ( s.ifModified ) {=0A=
			ifModifiedKey =3D ifModifiedKey || s.url;=0A=
			if ( jQuery.lastModified[ ifModifiedKey ] ) {=0A=
				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ =
ifModifiedKey ] );=0A=
			}=0A=
			if ( jQuery.etag[ ifModifiedKey ] ) {=0A=
				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey =
] );=0A=
			}=0A=
		}=0A=
=0A=
		// Set the Accepts header for the server, depending on the dataType=0A=
		jqXHR.setRequestHeader(=0A=
			"Accept",=0A=
			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?=0A=
				s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !=3D=3D "*" ? ", =
*/*; q=3D0.01" : "" ) :=0A=
				s.accepts[ "*" ]=0A=
		);=0A=
=0A=
		// Check for headers option=0A=
		for ( i in s.headers ) {=0A=
			jqXHR.setRequestHeader( i, s.headers[ i ] );=0A=
		}=0A=
=0A=
		// Allow custom headers/mimetypes and early abort=0A=
		if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) =
=3D=3D=3D false || state =3D=3D=3D 2 ) ) {=0A=
				// Abort if not done already=0A=
				jqXHR.abort();=0A=
				return false;=0A=
=0A=
		}=0A=
=0A=
		// Install callbacks on deferreds=0A=
		for ( i in { success: 1, error: 1, complete: 1 } ) {=0A=
			jqXHR[ i ]( s[ i ] );=0A=
		}=0A=
=0A=
		// Get transport=0A=
		transport =3D inspectPrefiltersOrTransports( transports, s, options, =
jqXHR );=0A=
=0A=
		// If no transport, we auto-abort=0A=
		if ( !transport ) {=0A=
			done( -1, "No Transport" );=0A=
		} else {=0A=
			jqXHR.readyState =3D 1;=0A=
			// Send global event=0A=
			if ( fireGlobals ) {=0A=
				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );=0A=
			}=0A=
			// Timeout=0A=
			if ( s.async && s.timeout > 0 ) {=0A=
				timeoutTimer =3D setTimeout( function(){=0A=
					jqXHR.abort( "timeout" );=0A=
				}, s.timeout );=0A=
			}=0A=
=0A=
			try {=0A=
				state =3D 1;=0A=
				transport.send( requestHeaders, done );=0A=
			} catch (e) {=0A=
				// Propagate exception as error if not done=0A=
				if ( status < 2 ) {=0A=
					done( -1, e );=0A=
				// Simply rethrow otherwise=0A=
				} else {=0A=
					jQuery.error( e );=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		return jqXHR;=0A=
	},=0A=
=0A=
	// Serialize an array of form elements or a set of=0A=
	// key/values into a query string=0A=
	param: function( a, traditional ) {=0A=
		var s =3D [],=0A=
			add =3D function( key, value ) {=0A=
				// If value is a function, invoke it and return its value=0A=
				value =3D jQuery.isFunction( value ) ? value() : value;=0A=
				s[ s.length ] =3D encodeURIComponent( key ) + "=3D" + =
encodeURIComponent( value );=0A=
			};=0A=
=0A=
		// Set traditional to true for jQuery <=3D 1.3.2 behavior.=0A=
		if ( traditional =3D=3D=3D undefined ) {=0A=
			traditional =3D jQuery.ajaxSettings.traditional;=0A=
		}=0A=
=0A=
		// If an array was passed in, assume that it is an array of form =
elements.=0A=
		if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) =
) {=0A=
			// Serialize the form elements=0A=
			jQuery.each( a, function() {=0A=
				add( this.name, this.value );=0A=
			});=0A=
=0A=
		} else {=0A=
			// If traditional, encode the "old" way (the way 1.3.2 or older=0A=
			// did it), otherwise encode params recursively.=0A=
			for ( var prefix in a ) {=0A=
				buildParams( prefix, a[ prefix ], traditional, add );=0A=
			}=0A=
		}=0A=
=0A=
		// Return the resulting serialization=0A=
		return s.join( "&" ).replace( r20, "+" );=0A=
	}=0A=
});=0A=
=0A=
function buildParams( prefix, obj, traditional, add ) {=0A=
	if ( jQuery.isArray( obj ) ) {=0A=
		// Serialize array item.=0A=
		jQuery.each( obj, function( i, v ) {=0A=
			if ( traditional || rbracket.test( prefix ) ) {=0A=
				// Treat each array item as a scalar.=0A=
				add( prefix, v );=0A=
=0A=
			} else {=0A=
				// If array item is non-scalar (array or object), encode its=0A=
				// numeric index to resolve deserialization ambiguity issues.=0A=
				// Note that rack (as of 1.0.0) can't currently deserialize=0A=
				// nested arrays properly, and attempting to do so may cause=0A=
				// a server error. Possible fixes are to modify rack's=0A=
				// deserialization algorithm or to provide an option or flag=0A=
				// to force array serialization to be shallow.=0A=
				buildParams( prefix + "[" + ( typeof v =3D=3D=3D "object" || =
jQuery.isArray(v) ? i : "" ) + "]", v, traditional, add );=0A=
			}=0A=
		});=0A=
=0A=
	} else if ( !traditional && obj !=3D null && typeof obj =3D=3D=3D =
"object" ) {=0A=
		// Serialize object item.=0A=
		for ( var name in obj ) {=0A=
			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add =
);=0A=
		}=0A=
=0A=
	} else {=0A=
		// Serialize scalar item.=0A=
		add( prefix, obj );=0A=
	}=0A=
}=0A=
=0A=
// This is still on the jQuery object... for now=0A=
// Want to move this to jQuery.ajax some day=0A=
jQuery.extend({=0A=
=0A=
	// Counter for holding the number of active queries=0A=
	active: 0,=0A=
=0A=
	// Last-Modified header cache for next request=0A=
	lastModified: {},=0A=
	etag: {}=0A=
=0A=
});=0A=
=0A=
/* Handles responses to an ajax request:=0A=
 * - sets all responseXXX fields accordingly=0A=
 * - finds the right dataType (mediates between content-type and =
expected dataType)=0A=
 * - returns the corresponding response=0A=
 */=0A=
function ajaxHandleResponses( s, jqXHR, responses ) {=0A=
=0A=
	var contents =3D s.contents,=0A=
		dataTypes =3D s.dataTypes,=0A=
		responseFields =3D s.responseFields,=0A=
		ct,=0A=
		type,=0A=
		finalDataType,=0A=
		firstDataType;=0A=
=0A=
	// Fill responseXXX fields=0A=
	for( type in responseFields ) {=0A=
		if ( type in responses ) {=0A=
			jqXHR[ responseFields[type] ] =3D responses[ type ];=0A=
		}=0A=
	}=0A=
=0A=
	// Remove auto dataType and get content-type in the process=0A=
	while( dataTypes[ 0 ] =3D=3D=3D "*" ) {=0A=
		dataTypes.shift();=0A=
		if ( ct =3D=3D=3D undefined ) {=0A=
			ct =3D s.mimeType || jqXHR.getResponseHeader( "content-type" );=0A=
		}=0A=
	}=0A=
=0A=
	// Check if we're dealing with a known content-type=0A=
	if ( ct ) {=0A=
		for ( type in contents ) {=0A=
			if ( contents[ type ] && contents[ type ].test( ct ) ) {=0A=
				dataTypes.unshift( type );=0A=
				break;=0A=
			}=0A=
		}=0A=
	}=0A=
=0A=
	// Check to see if we have a response for the expected dataType=0A=
	if ( dataTypes[ 0 ] in responses ) {=0A=
		finalDataType =3D dataTypes[ 0 ];=0A=
	} else {=0A=
		// Try convertible dataTypes=0A=
		for ( type in responses ) {=0A=
			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {=0A=
				finalDataType =3D type;=0A=
				break;=0A=
			}=0A=
			if ( !firstDataType ) {=0A=
				firstDataType =3D type;=0A=
			}=0A=
		}=0A=
		// Or just use first one=0A=
		finalDataType =3D finalDataType || firstDataType;=0A=
	}=0A=
=0A=
	// If we found a dataType=0A=
	// We add the dataType to the list if needed=0A=
	// and return the corresponding response=0A=
	if ( finalDataType ) {=0A=
		if ( finalDataType !=3D=3D dataTypes[ 0 ] ) {=0A=
			dataTypes.unshift( finalDataType );=0A=
		}=0A=
		return responses[ finalDataType ];=0A=
	}=0A=
}=0A=
=0A=
// Chain conversions given the request and the original response=0A=
function ajaxConvert( s, response ) {=0A=
=0A=
	// Apply the dataFilter if provided=0A=
	if ( s.dataFilter ) {=0A=
		response =3D s.dataFilter( response, s.dataType );=0A=
	}=0A=
=0A=
	var dataTypes =3D s.dataTypes,=0A=
		converters =3D {},=0A=
		i,=0A=
		key,=0A=
		length =3D dataTypes.length,=0A=
		tmp,=0A=
		// Current and previous dataTypes=0A=
		current =3D dataTypes[ 0 ],=0A=
		prev,=0A=
		// Conversion expression=0A=
		conversion,=0A=
		// Conversion function=0A=
		conv,=0A=
		// Conversion functions (transitive conversion)=0A=
		conv1,=0A=
		conv2;=0A=
=0A=
	// For each dataType in the chain=0A=
	for( i =3D 1; i < length; i++ ) {=0A=
=0A=
		// Create converters map=0A=
		// with lowercased keys=0A=
		if ( i =3D=3D=3D 1 ) {=0A=
			for( key in s.converters ) {=0A=
				if( typeof key =3D=3D=3D "string" ) {=0A=
					converters[ key.toLowerCase() ] =3D s.converters[ key ];=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		// Get the dataTypes=0A=
		prev =3D current;=0A=
		current =3D dataTypes[ i ];=0A=
=0A=
		// If current is auto dataType, update it to prev=0A=
		if( current =3D=3D=3D "*" ) {=0A=
			current =3D prev;=0A=
		// If no auto and dataTypes are actually different=0A=
		} else if ( prev !=3D=3D "*" && prev !=3D=3D current ) {=0A=
=0A=
			// Get the converter=0A=
			conversion =3D prev + " " + current;=0A=
			conv =3D converters[ conversion ] || converters[ "* " + current ];=0A=
=0A=
			// If there is no direct converter, search transitively=0A=
			if ( !conv ) {=0A=
				conv2 =3D undefined;=0A=
				for( conv1 in converters ) {=0A=
					tmp =3D conv1.split( " " );=0A=
					if ( tmp[ 0 ] =3D=3D=3D prev || tmp[ 0 ] =3D=3D=3D "*" ) {=0A=
						conv2 =3D converters[ tmp[1] + " " + current ];=0A=
						if ( conv2 ) {=0A=
							conv1 =3D converters[ conv1 ];=0A=
							if ( conv1 =3D=3D=3D true ) {=0A=
								conv =3D conv2;=0A=
							} else if ( conv2 =3D=3D=3D true ) {=0A=
								conv =3D conv1;=0A=
							}=0A=
							break;=0A=
						}=0A=
					}=0A=
				}=0A=
			}=0A=
			// If we found no converter, dispatch an error=0A=
			if ( !( conv || conv2 ) ) {=0A=
				jQuery.error( "No conversion from " + conversion.replace(" "," to ") =
);=0A=
			}=0A=
			// If found converter is not an equivalence=0A=
			if ( conv !=3D=3D true ) {=0A=
				// Convert with 1 or 2 converters accordingly=0A=
				response =3D conv ? conv( response ) : conv2( conv1(response) );=0A=
			}=0A=
		}=0A=
	}=0A=
	return response;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
var jsc =3D jQuery.now(),=0A=
	jsre =3D /(\=3D)\?(&|$)|\?\?/i;=0A=
=0A=
// Default jsonp settings=0A=
jQuery.ajaxSetup({=0A=
	jsonp: "callback",=0A=
	jsonpCallback: function() {=0A=
		return jQuery.expando + "_" + ( jsc++ );=0A=
	}=0A=
});=0A=
=0A=
// Detect, normalize options and install callbacks for jsonp requests=0A=
jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR =
) {=0A=
=0A=
	var inspectData =3D s.contentType =3D=3D=3D =
"application/x-www-form-urlencoded" &&=0A=
		( typeof s.data =3D=3D=3D "string" );=0A=
=0A=
	if ( s.dataTypes[ 0 ] =3D=3D=3D "jsonp" ||=0A=
		s.jsonp !=3D=3D false && ( jsre.test( s.url ) ||=0A=
				inspectData && jsre.test( s.data ) ) ) {=0A=
=0A=
		var responseContainer,=0A=
			jsonpCallback =3D s.jsonpCallback =3D=0A=
				jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : =
s.jsonpCallback,=0A=
			previous =3D window[ jsonpCallback ],=0A=
			url =3D s.url,=0A=
			data =3D s.data,=0A=
			replace =3D "$1" + jsonpCallback + "$2";=0A=
=0A=
		if ( s.jsonp !=3D=3D false ) {=0A=
			url =3D url.replace( jsre, replace );=0A=
			if ( s.url =3D=3D=3D url ) {=0A=
				if ( inspectData ) {=0A=
					data =3D data.replace( jsre, replace );=0A=
				}=0A=
				if ( s.data =3D=3D=3D data ) {=0A=
					// Add callback manually=0A=
					url +=3D (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=3D" + =
jsonpCallback;=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		s.url =3D url;=0A=
		s.data =3D data;=0A=
=0A=
		// Install callback=0A=
		window[ jsonpCallback ] =3D function( response ) {=0A=
			responseContainer =3D [ response ];=0A=
		};=0A=
=0A=
		// Clean-up function=0A=
		jqXHR.always(function() {=0A=
			// Set callback back to previous value=0A=
			window[ jsonpCallback ] =3D previous;=0A=
			// Call if it was a function and we have a response=0A=
			if ( responseContainer && jQuery.isFunction( previous ) ) {=0A=
				window[ jsonpCallback ]( responseContainer[ 0 ] );=0A=
			}=0A=
		});=0A=
=0A=
		// Use data converter to retrieve json after script execution=0A=
		s.converters["script json"] =3D function() {=0A=
			if ( !responseContainer ) {=0A=
				jQuery.error( jsonpCallback + " was not called" );=0A=
			}=0A=
			return responseContainer[ 0 ];=0A=
		};=0A=
=0A=
		// force json dataType=0A=
		s.dataTypes[ 0 ] =3D "json";=0A=
=0A=
		// Delegate to script=0A=
		return "script";=0A=
	}=0A=
});=0A=
=0A=
=0A=
=0A=
=0A=
// Install script dataType=0A=
jQuery.ajaxSetup({=0A=
	accepts: {=0A=
		script: "text/javascript, application/javascript, =
application/ecmascript, application/x-ecmascript"=0A=
	},=0A=
	contents: {=0A=
		script: /javascript|ecmascript/=0A=
	},=0A=
	converters: {=0A=
		"text script": function( text ) {=0A=
			jQuery.globalEval( text );=0A=
			return text;=0A=
		}=0A=
	}=0A=
});=0A=
=0A=
// Handle cache's special case and global=0A=
jQuery.ajaxPrefilter( "script", function( s ) {=0A=
	if ( s.cache =3D=3D=3D undefined ) {=0A=
		s.cache =3D false;=0A=
	}=0A=
	if ( s.crossDomain ) {=0A=
		s.type =3D "GET";=0A=
		s.global =3D false;=0A=
	}=0A=
});=0A=
=0A=
// Bind script tag hack transport=0A=
jQuery.ajaxTransport( "script", function(s) {=0A=
=0A=
	// This transport only deals with cross domain requests=0A=
	if ( s.crossDomain ) {=0A=
=0A=
		var script,=0A=
			head =3D document.head || document.getElementsByTagName( "head" )[0] =
|| document.documentElement;=0A=
=0A=
		return {=0A=
=0A=
			send: function( _, callback ) {=0A=
=0A=
				script =3D document.createElement( "script" );=0A=
=0A=
				script.async =3D "async";=0A=
=0A=
				if ( s.scriptCharset ) {=0A=
					script.charset =3D s.scriptCharset;=0A=
				}=0A=
=0A=
				script.src =3D s.url;=0A=
=0A=
				// Attach handlers for all browsers=0A=
				script.onload =3D script.onreadystatechange =3D function( _, isAbort =
) {=0A=
=0A=
					if ( isAbort || !script.readyState || /loaded|complete/.test( =
script.readyState ) ) {=0A=
=0A=
						// Handle memory leak in IE=0A=
						script.onload =3D script.onreadystatechange =3D null;=0A=
=0A=
						// Remove the script=0A=
						if ( head && script.parentNode ) {=0A=
							head.removeChild( script );=0A=
						}=0A=
=0A=
						// Dereference the script=0A=
						script =3D undefined;=0A=
=0A=
						// Callback if not abort=0A=
						if ( !isAbort ) {=0A=
							callback( 200, "success" );=0A=
						}=0A=
					}=0A=
				};=0A=
				// Use insertBefore instead of appendChild  to circumvent an IE6 bug.=0A=
				// This arises when a base node is used (#2709 and #4378).=0A=
				head.insertBefore( script, head.firstChild );=0A=
			},=0A=
=0A=
			abort: function() {=0A=
				if ( script ) {=0A=
					script.onload( 0, 1 );=0A=
				}=0A=
			}=0A=
		};=0A=
	}=0A=
});=0A=
=0A=
=0A=
=0A=
=0A=
var // #5280: Internet Explorer will keep connections alive if we don't =
abort on unload=0A=
	xhrOnUnloadAbort =3D window.ActiveXObject ? function() {=0A=
		// Abort all pending requests=0A=
		for ( var key in xhrCallbacks ) {=0A=
			xhrCallbacks[ key ]( 0, 1 );=0A=
		}=0A=
	} : false,=0A=
	xhrId =3D 0,=0A=
	xhrCallbacks;=0A=
=0A=
// Functions to create xhrs=0A=
function createStandardXHR() {=0A=
	try {=0A=
		return new window.XMLHttpRequest();=0A=
	} catch( e ) {}=0A=
}=0A=
=0A=
function createActiveXHR() {=0A=
	try {=0A=
		return new window.ActiveXObject( "Microsoft.XMLHTTP" );=0A=
	} catch( e ) {}=0A=
}=0A=
=0A=
// Create the request object=0A=
// (This is still attached to ajaxSettings for backward compatibility)=0A=
jQuery.ajaxSettings.xhr =3D window.ActiveXObject ?=0A=
	/* Microsoft failed to properly=0A=
	 * implement the XMLHttpRequest in IE7 (can't request local files),=0A=
	 * so we use the ActiveXObject when it is available=0A=
	 * Additionally XMLHttpRequest can be disabled in IE7/IE8 so=0A=
	 * we need a fallback.=0A=
	 */=0A=
	function() {=0A=
		return !this.isLocal && createStandardXHR() || createActiveXHR();=0A=
	} :=0A=
	// For all other browsers, use the standard XMLHttpRequest object=0A=
	createStandardXHR;=0A=
=0A=
// Determine support properties=0A=
(function( xhr ) {=0A=
	jQuery.extend( jQuery.support, {=0A=
		ajax: !!xhr,=0A=
		cors: !!xhr && ( "withCredentials" in xhr )=0A=
	});=0A=
})( jQuery.ajaxSettings.xhr() );=0A=
=0A=
// Create transport if the browser can provide an xhr=0A=
if ( jQuery.support.ajax ) {=0A=
=0A=
	jQuery.ajaxTransport(function( s ) {=0A=
		// Cross domain only allowed if supported through XMLHttpRequest=0A=
		if ( !s.crossDomain || jQuery.support.cors ) {=0A=
=0A=
			var callback;=0A=
=0A=
			return {=0A=
				send: function( headers, complete ) {=0A=
=0A=
					// Get a new xhr=0A=
					var xhr =3D s.xhr(),=0A=
						handle,=0A=
						i;=0A=
=0A=
					// Open the socket=0A=
					// Passing null username, generates a login popup on Opera (#2865)=0A=
					if ( s.username ) {=0A=
						xhr.open( s.type, s.url, s.async, s.username, s.password );=0A=
					} else {=0A=
						xhr.open( s.type, s.url, s.async );=0A=
					}=0A=
=0A=
					// Apply custom fields if provided=0A=
					if ( s.xhrFields ) {=0A=
						for ( i in s.xhrFields ) {=0A=
							xhr[ i ] =3D s.xhrFields[ i ];=0A=
						}=0A=
					}=0A=
=0A=
					// Override mime type if needed=0A=
					if ( s.mimeType && xhr.overrideMimeType ) {=0A=
						xhr.overrideMimeType( s.mimeType );=0A=
					}=0A=
=0A=
					// X-Requested-With header=0A=
					// For cross-domain requests, seeing as conditions for a preflight =
are=0A=
					// akin to a jigsaw puzzle, we simply never set it to be sure.=0A=
					// (it can always be set on a per-request basis or even using =
ajaxSetup)=0A=
					// For same-domain requests, won't change header if already =
provided.=0A=
					if ( !s.crossDomain && !headers["X-Requested-With"] ) {=0A=
						headers[ "X-Requested-With" ] =3D "XMLHttpRequest";=0A=
					}=0A=
=0A=
					// Need an extra try/catch for cross domain requests in Firefox 3=0A=
					try {=0A=
						for ( i in headers ) {=0A=
							xhr.setRequestHeader( i, headers[ i ] );=0A=
						}=0A=
					} catch( _ ) {}=0A=
=0A=
					// Do send the request=0A=
					// This may raise an exception which is actually=0A=
					// handled in jQuery.ajax (so no try/catch here)=0A=
					xhr.send( ( s.hasContent && s.data ) || null );=0A=
=0A=
					// Listener=0A=
					callback =3D function( _, isAbort ) {=0A=
=0A=
						var status,=0A=
							statusText,=0A=
							responseHeaders,=0A=
							responses,=0A=
							xml;=0A=
=0A=
						// Firefox throws exceptions when accessing properties=0A=
						// of an xhr when a network error occured=0A=
						// =
http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:=
_0x80040111_(NS_ERROR_NOT_AVAILABLE)=0A=
						try {=0A=
=0A=
							// Was never called and is aborted or complete=0A=
							if ( callback && ( isAbort || xhr.readyState =3D=3D=3D 4 ) ) {=0A=
=0A=
								// Only called once=0A=
								callback =3D undefined;=0A=
=0A=
								// Do not keep as active anymore=0A=
								if ( handle ) {=0A=
									xhr.onreadystatechange =3D jQuery.noop;=0A=
									if ( xhrOnUnloadAbort ) {=0A=
										delete xhrCallbacks[ handle ];=0A=
									}=0A=
								}=0A=
=0A=
								// If it's an abort=0A=
								if ( isAbort ) {=0A=
									// Abort it manually if needed=0A=
									if ( xhr.readyState !=3D=3D 4 ) {=0A=
										xhr.abort();=0A=
									}=0A=
								} else {=0A=
									status =3D xhr.status;=0A=
									responseHeaders =3D xhr.getAllResponseHeaders();=0A=
									responses =3D {};=0A=
									xml =3D xhr.responseXML;=0A=
=0A=
									// Construct response list=0A=
									if ( xml && xml.documentElement /* #4958 */ ) {=0A=
										responses.xml =3D xml;=0A=
									}=0A=
									responses.text =3D xhr.responseText;=0A=
=0A=
									// Firefox throws an exception when accessing=0A=
									// statusText for faulty cross-domain requests=0A=
									try {=0A=
										statusText =3D xhr.statusText;=0A=
									} catch( e ) {=0A=
										// We normalize with Webkit giving an empty statusText=0A=
										statusText =3D "";=0A=
									}=0A=
=0A=
									// Filter status for non standard behaviors=0A=
=0A=
									// If the request is local and we have data: assume a success=0A=
									// (success with no data won't get notified, that's the best we=0A=
									// can do given current implementations)=0A=
									if ( !status && s.isLocal && !s.crossDomain ) {=0A=
										status =3D responses.text ? 200 : 404;=0A=
									// IE - #1450: sometimes returns 1223 when it should be 204=0A=
									} else if ( status =3D=3D=3D 1223 ) {=0A=
										status =3D 204;=0A=
									}=0A=
								}=0A=
							}=0A=
						} catch( firefoxAccessException ) {=0A=
							if ( !isAbort ) {=0A=
								complete( -1, firefoxAccessException );=0A=
							}=0A=
						}=0A=
=0A=
						// Call complete if needed=0A=
						if ( responses ) {=0A=
							complete( status, statusText, responses, responseHeaders );=0A=
						}=0A=
					};=0A=
=0A=
					// if we're in sync mode or it's in cache=0A=
					// and has been retrieved directly (IE6 & IE7)=0A=
					// we need to manually fire the callback=0A=
					if ( !s.async || xhr.readyState =3D=3D=3D 4 ) {=0A=
						callback();=0A=
					} else {=0A=
						handle =3D ++xhrId;=0A=
						if ( xhrOnUnloadAbort ) {=0A=
							// Create the active xhrs callbacks list if needed=0A=
							// and attach the unload handler=0A=
							if ( !xhrCallbacks ) {=0A=
								xhrCallbacks =3D {};=0A=
								jQuery( window ).unload( xhrOnUnloadAbort );=0A=
							}=0A=
							// Add to list of active xhrs callbacks=0A=
							xhrCallbacks[ handle ] =3D callback;=0A=
						}=0A=
						xhr.onreadystatechange =3D callback;=0A=
					}=0A=
				},=0A=
=0A=
				abort: function() {=0A=
					if ( callback ) {=0A=
						callback(0,1);=0A=
					}=0A=
				}=0A=
			};=0A=
		}=0A=
	});=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
var elemdisplay =3D {},=0A=
	iframe, iframeDoc,=0A=
	rfxtypes =3D /^(?:toggle|show|hide)$/,=0A=
	rfxnum =3D /^([+\-]=3D)?([\d+.\-]+)([a-z%]*)$/i,=0A=
	timerId,=0A=
	fxAttrs =3D [=0A=
		// height animations=0A=
		[ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" =
],=0A=
		// width animations=0A=
		[ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" =
],=0A=
		// opacity animations=0A=
		[ "opacity" ]=0A=
	],=0A=
	fxNow,=0A=
	requestAnimationFrame =3D window.webkitRequestAnimationFrame ||=0A=
	    window.mozRequestAnimationFrame ||=0A=
	    window.oRequestAnimationFrame;=0A=
=0A=
jQuery.fn.extend({=0A=
	show: function( speed, easing, callback ) {=0A=
		var elem, display;=0A=
=0A=
		if ( speed || speed =3D=3D=3D 0 ) {=0A=
			return this.animate( genFx("show", 3), speed, easing, callback);=0A=
=0A=
		} else {=0A=
			for ( var i =3D 0, j =3D this.length; i < j; i++ ) {=0A=
				elem =3D this[i];=0A=
=0A=
				if ( elem.style ) {=0A=
					display =3D elem.style.display;=0A=
=0A=
					// Reset the inline display of this element to learn if it is=0A=
					// being hidden by cascaded rules or not=0A=
					if ( !jQuery._data(elem, "olddisplay") && display =3D=3D=3D "none" =
) {=0A=
						display =3D elem.style.display =3D "";=0A=
					}=0A=
=0A=
					// Set elements which have been overridden with display: none=0A=
					// in a stylesheet to whatever the default browser style is=0A=
					// for such an element=0A=
					if ( display =3D=3D=3D "" && jQuery.css( elem, "display" ) =
=3D=3D=3D "none" ) {=0A=
						jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName));=0A=
					}=0A=
				}=0A=
			}=0A=
=0A=
			// Set the display of most of the elements in a second loop=0A=
			// to avoid the constant reflow=0A=
			for ( i =3D 0; i < j; i++ ) {=0A=
				elem =3D this[i];=0A=
=0A=
				if ( elem.style ) {=0A=
					display =3D elem.style.display;=0A=
=0A=
					if ( display =3D=3D=3D "" || display =3D=3D=3D "none" ) {=0A=
						elem.style.display =3D jQuery._data(elem, "olddisplay") || "";=0A=
					}=0A=
				}=0A=
			}=0A=
=0A=
			return this;=0A=
		}=0A=
	},=0A=
=0A=
	hide: function( speed, easing, callback ) {=0A=
		if ( speed || speed =3D=3D=3D 0 ) {=0A=
			return this.animate( genFx("hide", 3), speed, easing, callback);=0A=
=0A=
		} else {=0A=
			for ( var i =3D 0, j =3D this.length; i < j; i++ ) {=0A=
				if ( this[i].style ) {=0A=
					var display =3D jQuery.css( this[i], "display" );=0A=
=0A=
					if ( display !=3D=3D "none" && !jQuery._data( this[i], "olddisplay" =
) ) {=0A=
						jQuery._data( this[i], "olddisplay", display );=0A=
					}=0A=
				}=0A=
			}=0A=
=0A=
			// Set the display of the elements in a second loop=0A=
			// to avoid the constant reflow=0A=
			for ( i =3D 0; i < j; i++ ) {=0A=
				if ( this[i].style ) {=0A=
					this[i].style.display =3D "none";=0A=
				}=0A=
			}=0A=
=0A=
			return this;=0A=
		}=0A=
	},=0A=
=0A=
	// Save the old toggle function=0A=
	_toggle: jQuery.fn.toggle,=0A=
=0A=
	toggle: function( fn, fn2, callback ) {=0A=
		var bool =3D typeof fn =3D=3D=3D "boolean";=0A=
=0A=
		if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {=0A=
			this._toggle.apply( this, arguments );=0A=
=0A=
		} else if ( fn =3D=3D null || bool ) {=0A=
			this.each(function() {=0A=
				var state =3D bool ? fn : jQuery(this).is(":hidden");=0A=
				jQuery(this)[ state ? "show" : "hide" ]();=0A=
			});=0A=
=0A=
		} else {=0A=
			this.animate(genFx("toggle", 3), fn, fn2, callback);=0A=
		}=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	fadeTo: function( speed, to, easing, callback ) {=0A=
		return this.filter(":hidden").css("opacity", 0).show().end()=0A=
					.animate({opacity: to}, speed, easing, callback);=0A=
	},=0A=
=0A=
	animate: function( prop, speed, easing, callback ) {=0A=
		var optall =3D jQuery.speed(speed, easing, callback);=0A=
=0A=
		if ( jQuery.isEmptyObject( prop ) ) {=0A=
			return this.each( optall.complete, [ false ] );=0A=
		}=0A=
=0A=
		// Do not change referenced properties as per-property easing will be =
lost=0A=
		prop =3D jQuery.extend( {}, prop );=0A=
=0A=
		return this[ optall.queue =3D=3D=3D false ? "each" : "queue" =
](function() {=0A=
			// XXX 'this' does not always have a nodeName when running the=0A=
			// test suite=0A=
=0A=
			if ( optall.queue =3D=3D=3D false ) {=0A=
				jQuery._mark( this );=0A=
			}=0A=
=0A=
			var opt =3D jQuery.extend( {}, optall ),=0A=
				isElement =3D this.nodeType =3D=3D=3D 1,=0A=
				hidden =3D isElement && jQuery(this).is(":hidden"),=0A=
				name, val, p,=0A=
				display, e,=0A=
				parts, start, end, unit;=0A=
=0A=
			// will store per property easing and be used to determine when an =
animation is complete=0A=
			opt.animatedProperties =3D {};=0A=
=0A=
			for ( p in prop ) {=0A=
=0A=
				// property name normalization=0A=
				name =3D jQuery.camelCase( p );=0A=
				if ( p !=3D=3D name ) {=0A=
					prop[ name ] =3D prop[ p ];=0A=
					delete prop[ p ];=0A=
				}=0A=
=0A=
				val =3D prop[ name ];=0A=
=0A=
				// easing resolution: per property > opt.specialEasing > opt.easing =
> 'swing' (default)=0A=
				if ( jQuery.isArray( val ) ) {=0A=
					opt.animatedProperties[ name ] =3D val[ 1 ];=0A=
					val =3D prop[ name ] =3D val[ 0 ];=0A=
				} else {=0A=
					opt.animatedProperties[ name ] =3D opt.specialEasing && =
opt.specialEasing[ name ] || opt.easing || 'swing';=0A=
				}=0A=
=0A=
				if ( val =3D=3D=3D "hide" && hidden || val =3D=3D=3D "show" && =
!hidden ) {=0A=
					return opt.complete.call( this );=0A=
				}=0A=
=0A=
				if ( isElement && ( name =3D=3D=3D "height" || name =3D=3D=3D =
"width" ) ) {=0A=
					// Make sure that nothing sneaks out=0A=
					// Record all 3 overflow attributes because IE does not=0A=
					// change the overflow attribute when overflowX and=0A=
					// overflowY are set to the same value=0A=
					opt.overflow =3D [ this.style.overflow, this.style.overflowX, =
this.style.overflowY ];=0A=
=0A=
					// Set display property to inline-block for height/width=0A=
					// animations on inline elements that are having width/height=0A=
					// animated=0A=
					if ( jQuery.css( this, "display" ) =3D=3D=3D "inline" &&=0A=
							jQuery.css( this, "float" ) =3D=3D=3D "none" ) {=0A=
						if ( !jQuery.support.inlineBlockNeedsLayout ) {=0A=
							this.style.display =3D "inline-block";=0A=
=0A=
						} else {=0A=
							display =3D defaultDisplay( this.nodeName );=0A=
=0A=
							// inline-level elements accept inline-block;=0A=
							// block-level elements need to be inline with layout=0A=
							if ( display =3D=3D=3D "inline" ) {=0A=
								this.style.display =3D "inline-block";=0A=
=0A=
							} else {=0A=
								this.style.display =3D "inline";=0A=
								this.style.zoom =3D 1;=0A=
							}=0A=
						}=0A=
					}=0A=
				}=0A=
			}=0A=
=0A=
			if ( opt.overflow !=3D null ) {=0A=
				this.style.overflow =3D "hidden";=0A=
			}=0A=
=0A=
			for ( p in prop ) {=0A=
				e =3D new jQuery.fx( this, opt, p );=0A=
				val =3D prop[ p ];=0A=
=0A=
				if ( rfxtypes.test(val) ) {=0A=
					e[ val =3D=3D=3D "toggle" ? hidden ? "show" : "hide" : val ]();=0A=
=0A=
				} else {=0A=
					parts =3D rfxnum.exec( val );=0A=
					start =3D e.cur();=0A=
=0A=
					if ( parts ) {=0A=
						end =3D parseFloat( parts[2] );=0A=
						unit =3D parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" );=0A=
=0A=
						// We need to compute starting value=0A=
						if ( unit !=3D=3D "px" ) {=0A=
							jQuery.style( this, p, (end || 1) + unit);=0A=
							start =3D ((end || 1) / e.cur()) * start;=0A=
							jQuery.style( this, p, start + unit);=0A=
						}=0A=
=0A=
						// If a +=3D/-=3D token was provided, we're doing a relative =
animation=0A=
						if ( parts[1] ) {=0A=
							end =3D ( (parts[ 1 ] =3D=3D=3D "-=3D" ? -1 : 1) * end ) + start;=0A=
						}=0A=
=0A=
						e.custom( start, end, unit );=0A=
=0A=
					} else {=0A=
						e.custom( start, val, "" );=0A=
					}=0A=
				}=0A=
			}=0A=
=0A=
			// For JS strict compliance=0A=
			return true;=0A=
		});=0A=
	},=0A=
=0A=
	stop: function( clearQueue, gotoEnd ) {=0A=
		if ( clearQueue ) {=0A=
			this.queue([]);=0A=
		}=0A=
=0A=
		this.each(function() {=0A=
			var timers =3D jQuery.timers,=0A=
				i =3D timers.length;=0A=
			// clear marker counters if we know they won't be=0A=
			if ( !gotoEnd ) {=0A=
				jQuery._unmark( true, this );=0A=
			}=0A=
			while ( i-- ) {=0A=
				if ( timers[i].elem =3D=3D=3D this ) {=0A=
					if (gotoEnd) {=0A=
						// force the next step to be the last=0A=
						timers[i](true);=0A=
					}=0A=
=0A=
					timers.splice(i, 1);=0A=
				}=0A=
			}=0A=
		});=0A=
=0A=
		// start the next in the queue if the last step wasn't forced=0A=
		if ( !gotoEnd ) {=0A=
			this.dequeue();=0A=
		}=0A=
=0A=
		return this;=0A=
	}=0A=
=0A=
});=0A=
=0A=
// Animations created synchronously will run synchronously=0A=
function createFxNow() {=0A=
	setTimeout( clearFxNow, 0 );=0A=
	return ( fxNow =3D jQuery.now() );=0A=
}=0A=
=0A=
function clearFxNow() {=0A=
	fxNow =3D undefined;=0A=
}=0A=
=0A=
// Generate parameters to create a standard animation=0A=
function genFx( type, num ) {=0A=
	var obj =3D {};=0A=
=0A=
	jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function() =
{=0A=
		obj[ this ] =3D type;=0A=
	});=0A=
=0A=
	return obj;=0A=
}=0A=
=0A=
// Generate shortcuts for custom animations=0A=
jQuery.each({=0A=
	slideDown: genFx("show", 1),=0A=
	slideUp: genFx("hide", 1),=0A=
	slideToggle: genFx("toggle", 1),=0A=
	fadeIn: { opacity: "show" },=0A=
	fadeOut: { opacity: "hide" },=0A=
	fadeToggle: { opacity: "toggle" }=0A=
}, function( name, props ) {=0A=
	jQuery.fn[ name ] =3D function( speed, easing, callback ) {=0A=
		return this.animate( props, speed, easing, callback );=0A=
	};=0A=
});=0A=
=0A=
jQuery.extend({=0A=
	speed: function( speed, easing, fn ) {=0A=
		var opt =3D speed && typeof speed =3D=3D=3D "object" ? =
jQuery.extend({}, speed) : {=0A=
			complete: fn || !fn && easing ||=0A=
				jQuery.isFunction( speed ) && speed,=0A=
			duration: speed,=0A=
			easing: fn && easing || easing && !jQuery.isFunction(easing) && easing=0A=
		};=0A=
=0A=
		opt.duration =3D jQuery.fx.off ? 0 : typeof opt.duration =3D=3D=3D =
"number" ? opt.duration :=0A=
			opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[opt.duration] : =
jQuery.fx.speeds._default;=0A=
=0A=
		// Queueing=0A=
		opt.old =3D opt.complete;=0A=
		opt.complete =3D function( noUnmark ) {=0A=
			if ( opt.queue !=3D=3D false ) {=0A=
				jQuery.dequeue( this );=0A=
			} else if ( noUnmark !=3D=3D false ) {=0A=
				jQuery._unmark( this );=0A=
			}=0A=
=0A=
			if ( jQuery.isFunction( opt.old ) ) {=0A=
				opt.old.call( this );=0A=
			}=0A=
		};=0A=
=0A=
		return opt;=0A=
	},=0A=
=0A=
	easing: {=0A=
		linear: function( p, n, firstNum, diff ) {=0A=
			return firstNum + diff * p;=0A=
		},=0A=
		swing: function( p, n, firstNum, diff ) {=0A=
			return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;=0A=
		}=0A=
	},=0A=
=0A=
	timers: [],=0A=
=0A=
	fx: function( elem, options, prop ) {=0A=
		this.options =3D options;=0A=
		this.elem =3D elem;=0A=
		this.prop =3D prop;=0A=
=0A=
		options.orig =3D options.orig || {};=0A=
	}=0A=
=0A=
});=0A=
=0A=
jQuery.fx.prototype =3D {=0A=
	// Simple function for setting a style value=0A=
	update: function() {=0A=
		if ( this.options.step ) {=0A=
			this.options.step.call( this.elem, this.now, this );=0A=
		}=0A=
=0A=
		(jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );=0A=
	},=0A=
=0A=
	// Get the current size=0A=
	cur: function() {=0A=
		if ( this.elem[this.prop] !=3D null && (!this.elem.style || =
this.elem.style[this.prop] =3D=3D null) ) {=0A=
			return this.elem[ this.prop ];=0A=
		}=0A=
=0A=
		var parsed,=0A=
			r =3D jQuery.css( this.elem, this.prop );=0A=
		// Empty strings, null, undefined and "auto" are converted to 0,=0A=
		// complex values such as "rotate(1rad)" are returned as is,=0A=
		// simple values such as "10px" are parsed to Float.=0A=
		return isNaN( parsed =3D parseFloat( r ) ) ? !r || r =3D=3D=3D "auto" =
? 0 : r : parsed;=0A=
	},=0A=
=0A=
	// Start an animation from one number to another=0A=
	custom: function( from, to, unit ) {=0A=
		var self =3D this,=0A=
			fx =3D jQuery.fx,=0A=
			raf;=0A=
=0A=
		this.startTime =3D fxNow || createFxNow();=0A=
		this.start =3D from;=0A=
		this.end =3D to;=0A=
		this.unit =3D unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? =
"" : "px" );=0A=
		this.now =3D this.start;=0A=
		this.pos =3D this.state =3D 0;=0A=
=0A=
		function t( gotoEnd ) {=0A=
			return self.step(gotoEnd);=0A=
		}=0A=
=0A=
		t.elem =3D this.elem;=0A=
=0A=
		if ( t() && jQuery.timers.push(t) && !timerId ) {=0A=
			// Use requestAnimationFrame instead of setInterval if available=0A=
			if ( requestAnimationFrame ) {=0A=
				timerId =3D 1;=0A=
				raf =3D function() {=0A=
					// When timerId gets set to null at any point, this stops=0A=
					if ( timerId ) {=0A=
						requestAnimationFrame( raf );=0A=
						fx.tick();=0A=
					}=0A=
				};=0A=
				requestAnimationFrame( raf );=0A=
			} else {=0A=
				timerId =3D setInterval( fx.tick, fx.interval );=0A=
			}=0A=
		}=0A=
	},=0A=
=0A=
	// Simple 'show' function=0A=
	show: function() {=0A=
		// Remember where we started, so that we can go back to it later=0A=
		this.options.orig[this.prop] =3D jQuery.style( this.elem, this.prop );=0A=
		this.options.show =3D true;=0A=
=0A=
		// Begin the animation=0A=
		// Make sure that we start at a small width/height to avoid any=0A=
		// flash of content=0A=
		this.custom(this.prop =3D=3D=3D "width" || this.prop =3D=3D=3D =
"height" ? 1 : 0, this.cur());=0A=
=0A=
		// Start by showing the element=0A=
		jQuery( this.elem ).show();=0A=
	},=0A=
=0A=
	// Simple 'hide' function=0A=
	hide: function() {=0A=
		// Remember where we started, so that we can go back to it later=0A=
		this.options.orig[this.prop] =3D jQuery.style( this.elem, this.prop );=0A=
		this.options.hide =3D true;=0A=
=0A=
		// Begin the animation=0A=
		this.custom(this.cur(), 0);=0A=
	},=0A=
=0A=
	// Each step of an animation=0A=
	step: function( gotoEnd ) {=0A=
		var t =3D fxNow || createFxNow(),=0A=
			done =3D true,=0A=
			elem =3D this.elem,=0A=
			options =3D this.options,=0A=
			i, n;=0A=
=0A=
		if ( gotoEnd || t >=3D options.duration + this.startTime ) {=0A=
			this.now =3D this.end;=0A=
			this.pos =3D this.state =3D 1;=0A=
			this.update();=0A=
=0A=
			options.animatedProperties[ this.prop ] =3D true;=0A=
=0A=
			for ( i in options.animatedProperties ) {=0A=
				if ( options.animatedProperties[i] !=3D=3D true ) {=0A=
					done =3D false;=0A=
				}=0A=
			}=0A=
=0A=
			if ( done ) {=0A=
				// Reset the overflow=0A=
				if ( options.overflow !=3D null && !jQuery.support.shrinkWrapBlocks =
) {=0A=
=0A=
					jQuery.each( [ "", "X", "Y" ], function (index, value) {=0A=
						elem.style[ "overflow" + value ] =3D options.overflow[index];=0A=
					});=0A=
				}=0A=
=0A=
				// Hide the element if the "hide" operation was done=0A=
				if ( options.hide ) {=0A=
					jQuery(elem).hide();=0A=
				}=0A=
=0A=
				// Reset the properties, if the item has been hidden or shown=0A=
				if ( options.hide || options.show ) {=0A=
					for ( var p in options.animatedProperties ) {=0A=
						jQuery.style( elem, p, options.orig[p] );=0A=
					}=0A=
				}=0A=
=0A=
				// Execute the complete function=0A=
				options.complete.call( elem );=0A=
			}=0A=
=0A=
			return false;=0A=
=0A=
		} else {=0A=
			// classical easing cannot be used with an Infinity duration=0A=
			if ( options.duration =3D=3D Infinity ) {=0A=
				this.now =3D t;=0A=
			} else {=0A=
				n =3D t - this.startTime;=0A=
				this.state =3D n / options.duration;=0A=
=0A=
				// Perform the easing function, defaults to swing=0A=
				this.pos =3D jQuery.easing[ options.animatedProperties[ this.prop ] =
]( this.state, n, 0, 1, options.duration );=0A=
				this.now =3D this.start + ((this.end - this.start) * this.pos);=0A=
			}=0A=
			// Perform the next step of the animation=0A=
			this.update();=0A=
		}=0A=
=0A=
		return true;=0A=
	}=0A=
};=0A=
=0A=
jQuery.extend( jQuery.fx, {=0A=
	tick: function() {=0A=
		for ( var timers =3D jQuery.timers, i =3D 0 ; i < timers.length ; ++i =
) {=0A=
			if ( !timers[i]() ) {=0A=
				timers.splice(i--, 1);=0A=
			}=0A=
		}=0A=
=0A=
		if ( !timers.length ) {=0A=
			jQuery.fx.stop();=0A=
		}=0A=
	},=0A=
=0A=
	interval: 13,=0A=
=0A=
	stop: function() {=0A=
		clearInterval( timerId );=0A=
		timerId =3D null;=0A=
	},=0A=
=0A=
	speeds: {=0A=
		slow: 600,=0A=
		fast: 200,=0A=
		// Default speed=0A=
		_default: 400=0A=
	},=0A=
=0A=
	step: {=0A=
		opacity: function( fx ) {=0A=
			jQuery.style( fx.elem, "opacity", fx.now );=0A=
		},=0A=
=0A=
		_default: function( fx ) {=0A=
			if ( fx.elem.style && fx.elem.style[ fx.prop ] !=3D null ) {=0A=
				fx.elem.style[ fx.prop ] =3D (fx.prop =3D=3D=3D "width" || fx.prop =
=3D=3D=3D "height" ? Math.max(0, fx.now) : fx.now) + fx.unit;=0A=
			} else {=0A=
				fx.elem[ fx.prop ] =3D fx.now;=0A=
			}=0A=
		}=0A=
	}=0A=
});=0A=
=0A=
if ( jQuery.expr && jQuery.expr.filters ) {=0A=
	jQuery.expr.filters.animated =3D function( elem ) {=0A=
		return jQuery.grep(jQuery.timers, function( fn ) {=0A=
			return elem =3D=3D=3D fn.elem;=0A=
		}).length;=0A=
	};=0A=
}=0A=
=0A=
// Try to restore the default display value of an element=0A=
function defaultDisplay( nodeName ) {=0A=
=0A=
	if ( !elemdisplay[ nodeName ] ) {=0A=
=0A=
		var elem =3D jQuery( "<" + nodeName + ">" ).appendTo( "body" ),=0A=
			display =3D elem.css( "display" );=0A=
=0A=
		elem.remove();=0A=
=0A=
		// If the simple way fails,=0A=
		// get element's real default display by attaching it to a temp iframe=0A=
		if ( display =3D=3D=3D "none" || display =3D=3D=3D "" ) {=0A=
			// No iframe to use yet, so create it=0A=
			if ( !iframe ) {=0A=
				iframe =3D document.createElement( "iframe" );=0A=
				iframe.frameBorder =3D iframe.width =3D iframe.height =3D 0;=0A=
			}=0A=
=0A=
			document.body.appendChild( iframe );=0A=
=0A=
			// Create a cacheable copy of the iframe document on first call.=0A=
			// IE and Opera will allow us to reuse the iframeDoc without =
re-writing the fake html=0A=
			// document to it, Webkit & Firefox won't allow reusing the iframe =
document=0A=
			if ( !iframeDoc || !iframe.createElement ) {=0A=
				iframeDoc =3D ( iframe.contentWindow || iframe.contentDocument =
).document;=0A=
				iframeDoc.write( "<!doctype><html><body></body></html>" );=0A=
			}=0A=
=0A=
			elem =3D iframeDoc.createElement( nodeName );=0A=
=0A=
			iframeDoc.body.appendChild( elem );=0A=
=0A=
			display =3D jQuery.css( elem, "display" );=0A=
=0A=
			document.body.removeChild( iframe );=0A=
		}=0A=
=0A=
		// Store the correct default display=0A=
		elemdisplay[ nodeName ] =3D display;=0A=
	}=0A=
=0A=
	return elemdisplay[ nodeName ];=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
var rtable =3D /^t(?:able|d|h)$/i,=0A=
	rroot =3D /^(?:body|html)$/i;=0A=
=0A=
if ( "getBoundingClientRect" in document.documentElement ) {=0A=
	jQuery.fn.offset =3D function( options ) {=0A=
		var elem =3D this[0], box;=0A=
=0A=
		if ( options ) {=0A=
			return this.each(function( i ) {=0A=
				jQuery.offset.setOffset( this, options, i );=0A=
			});=0A=
		}=0A=
=0A=
		if ( !elem || !elem.ownerDocument ) {=0A=
			return null;=0A=
		}=0A=
=0A=
		if ( elem =3D=3D=3D elem.ownerDocument.body ) {=0A=
			return jQuery.offset.bodyOffset( elem );=0A=
		}=0A=
=0A=
		try {=0A=
			box =3D elem.getBoundingClientRect();=0A=
		} catch(e) {}=0A=
=0A=
		var doc =3D elem.ownerDocument,=0A=
			docElem =3D doc.documentElement;=0A=
=0A=
		// Make sure we're not dealing with a disconnected DOM node=0A=
		if ( !box || !jQuery.contains( docElem, elem ) ) {=0A=
			return box ? { top: box.top, left: box.left } : { top: 0, left: 0 };=0A=
		}=0A=
=0A=
		var body =3D doc.body,=0A=
			win =3D getWindow(doc),=0A=
			clientTop  =3D docElem.clientTop  || body.clientTop  || 0,=0A=
			clientLeft =3D docElem.clientLeft || body.clientLeft || 0,=0A=
			scrollTop  =3D win.pageYOffset || jQuery.support.boxModel && =
docElem.scrollTop  || body.scrollTop,=0A=
			scrollLeft =3D win.pageXOffset || jQuery.support.boxModel && =
docElem.scrollLeft || body.scrollLeft,=0A=
			top  =3D box.top  + scrollTop  - clientTop,=0A=
			left =3D box.left + scrollLeft - clientLeft;=0A=
=0A=
		return { top: top, left: left };=0A=
	};=0A=
=0A=
} else {=0A=
	jQuery.fn.offset =3D function( options ) {=0A=
		var elem =3D this[0];=0A=
=0A=
		if ( options ) {=0A=
			return this.each(function( i ) {=0A=
				jQuery.offset.setOffset( this, options, i );=0A=
			});=0A=
		}=0A=
=0A=
		if ( !elem || !elem.ownerDocument ) {=0A=
			return null;=0A=
		}=0A=
=0A=
		if ( elem =3D=3D=3D elem.ownerDocument.body ) {=0A=
			return jQuery.offset.bodyOffset( elem );=0A=
		}=0A=
=0A=
		jQuery.offset.initialize();=0A=
=0A=
		var computedStyle,=0A=
			offsetParent =3D elem.offsetParent,=0A=
			prevOffsetParent =3D elem,=0A=
			doc =3D elem.ownerDocument,=0A=
			docElem =3D doc.documentElement,=0A=
			body =3D doc.body,=0A=
			defaultView =3D doc.defaultView,=0A=
			prevComputedStyle =3D defaultView ? defaultView.getComputedStyle( =
elem, null ) : elem.currentStyle,=0A=
			top =3D elem.offsetTop,=0A=
			left =3D elem.offsetLeft;=0A=
=0A=
		while ( (elem =3D elem.parentNode) && elem !=3D=3D body && elem =
!=3D=3D docElem ) {=0A=
			if ( jQuery.offset.supportsFixedPosition && =
prevComputedStyle.position =3D=3D=3D "fixed" ) {=0A=
				break;=0A=
			}=0A=
=0A=
			computedStyle =3D defaultView ? defaultView.getComputedStyle(elem, =
null) : elem.currentStyle;=0A=
			top  -=3D elem.scrollTop;=0A=
			left -=3D elem.scrollLeft;=0A=
=0A=
			if ( elem =3D=3D=3D offsetParent ) {=0A=
				top  +=3D elem.offsetTop;=0A=
				left +=3D elem.offsetLeft;=0A=
=0A=
				if ( jQuery.offset.doesNotAddBorder && =
!(jQuery.offset.doesAddBorderForTableAndCells && =
rtable.test(elem.nodeName)) ) {=0A=
					top  +=3D parseFloat( computedStyle.borderTopWidth  ) || 0;=0A=
					left +=3D parseFloat( computedStyle.borderLeftWidth ) || 0;=0A=
				}=0A=
=0A=
				prevOffsetParent =3D offsetParent;=0A=
				offsetParent =3D elem.offsetParent;=0A=
			}=0A=
=0A=
			if ( jQuery.offset.subtractsBorderForOverflowNotVisible && =
computedStyle.overflow !=3D=3D "visible" ) {=0A=
				top  +=3D parseFloat( computedStyle.borderTopWidth  ) || 0;=0A=
				left +=3D parseFloat( computedStyle.borderLeftWidth ) || 0;=0A=
			}=0A=
=0A=
			prevComputedStyle =3D computedStyle;=0A=
		}=0A=
=0A=
		if ( prevComputedStyle.position =3D=3D=3D "relative" || =
prevComputedStyle.position =3D=3D=3D "static" ) {=0A=
			top  +=3D body.offsetTop;=0A=
			left +=3D body.offsetLeft;=0A=
		}=0A=
=0A=
		if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position =
=3D=3D=3D "fixed" ) {=0A=
			top  +=3D Math.max( docElem.scrollTop, body.scrollTop );=0A=
			left +=3D Math.max( docElem.scrollLeft, body.scrollLeft );=0A=
		}=0A=
=0A=
		return { top: top, left: left };=0A=
	};=0A=
}=0A=
=0A=
jQuery.offset =3D {=0A=
	initialize: function() {=0A=
		var body =3D document.body, container =3D =
document.createElement("div"), innerDiv, checkDiv, table, td, =
bodyMarginTop =3D parseFloat( jQuery.css(body, "marginTop") ) || 0,=0A=
			html =3D "<div =
style=3D'position:absolute;top:0;left:0;margin:0;border:5px solid =
#000;padding:0;width:1px;height:1px;'><div></div></div><table =
style=3D'position:absolute;top:0;left:0;margin:0;border:5px solid =
#000;padding:0;width:1px;height:1px;' cellpadding=3D'0' =
cellspacing=3D'0'><tr><td></td></tr></table>";=0A=
=0A=
		jQuery.extend( container.style, { position: "absolute", top: 0, left: =
0, margin: 0, border: 0, width: "1px", height: "1px", visibility: =
"hidden" } );=0A=
=0A=
		container.innerHTML =3D html;=0A=
		body.insertBefore( container, body.firstChild );=0A=
		innerDiv =3D container.firstChild;=0A=
		checkDiv =3D innerDiv.firstChild;=0A=
		td =3D innerDiv.nextSibling.firstChild.firstChild;=0A=
=0A=
		this.doesNotAddBorder =3D (checkDiv.offsetTop !=3D=3D 5);=0A=
		this.doesAddBorderForTableAndCells =3D (td.offsetTop =3D=3D=3D 5);=0A=
=0A=
		checkDiv.style.position =3D "fixed";=0A=
		checkDiv.style.top =3D "20px";=0A=
=0A=
		// safari subtracts parent border width here which is 5px=0A=
		this.supportsFixedPosition =3D (checkDiv.offsetTop =3D=3D=3D 20 || =
checkDiv.offsetTop =3D=3D=3D 15);=0A=
		checkDiv.style.position =3D checkDiv.style.top =3D "";=0A=
=0A=
		innerDiv.style.overflow =3D "hidden";=0A=
		innerDiv.style.position =3D "relative";=0A=
=0A=
		this.subtractsBorderForOverflowNotVisible =3D (checkDiv.offsetTop =
=3D=3D=3D -5);=0A=
=0A=
		this.doesNotIncludeMarginInBodyOffset =3D (body.offsetTop !=3D=3D =
bodyMarginTop);=0A=
=0A=
		body.removeChild( container );=0A=
		jQuery.offset.initialize =3D jQuery.noop;=0A=
	},=0A=
=0A=
	bodyOffset: function( body ) {=0A=
		var top =3D body.offsetTop,=0A=
			left =3D body.offsetLeft;=0A=
=0A=
		jQuery.offset.initialize();=0A=
=0A=
		if ( jQuery.offset.doesNotIncludeMarginInBodyOffset ) {=0A=
			top  +=3D parseFloat( jQuery.css(body, "marginTop") ) || 0;=0A=
			left +=3D parseFloat( jQuery.css(body, "marginLeft") ) || 0;=0A=
		}=0A=
=0A=
		return { top: top, left: left };=0A=
	},=0A=
=0A=
	setOffset: function( elem, options, i ) {=0A=
		var position =3D jQuery.css( elem, "position" );=0A=
=0A=
		// set position first, in-case top/left are set even on static elem=0A=
		if ( position =3D=3D=3D "static" ) {=0A=
			elem.style.position =3D "relative";=0A=
		}=0A=
=0A=
		var curElem =3D jQuery( elem ),=0A=
			curOffset =3D curElem.offset(),=0A=
			curCSSTop =3D jQuery.css( elem, "top" ),=0A=
			curCSSLeft =3D jQuery.css( elem, "left" ),=0A=
			calculatePosition =3D (position =3D=3D=3D "absolute" || position =
=3D=3D=3D "fixed") && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > =
-1,=0A=
			props =3D {}, curPosition =3D {}, curTop, curLeft;=0A=
=0A=
		// need to be able to calculate position if either top or left is auto =
and position is either absolute or fixed=0A=
		if ( calculatePosition ) {=0A=
			curPosition =3D curElem.position();=0A=
			curTop =3D curPosition.top;=0A=
			curLeft =3D curPosition.left;=0A=
		} else {=0A=
			curTop =3D parseFloat( curCSSTop ) || 0;=0A=
			curLeft =3D parseFloat( curCSSLeft ) || 0;=0A=
		}=0A=
=0A=
		if ( jQuery.isFunction( options ) ) {=0A=
			options =3D options.call( elem, i, curOffset );=0A=
		}=0A=
=0A=
		if (options.top !=3D null) {=0A=
			props.top =3D (options.top - curOffset.top) + curTop;=0A=
		}=0A=
		if (options.left !=3D null) {=0A=
			props.left =3D (options.left - curOffset.left) + curLeft;=0A=
		}=0A=
=0A=
		if ( "using" in options ) {=0A=
			options.using.call( elem, props );=0A=
		} else {=0A=
			curElem.css( props );=0A=
		}=0A=
	}=0A=
};=0A=
=0A=
=0A=
jQuery.fn.extend({=0A=
	position: function() {=0A=
		if ( !this[0] ) {=0A=
			return null;=0A=
		}=0A=
=0A=
		var elem =3D this[0],=0A=
=0A=
		// Get *real* offsetParent=0A=
		offsetParent =3D this.offsetParent(),=0A=
=0A=
		// Get correct offsets=0A=
		offset       =3D this.offset(),=0A=
		parentOffset =3D rroot.test(offsetParent[0].nodeName) ? { top: 0, =
left: 0 } : offsetParent.offset();=0A=
=0A=
		// Subtract element margins=0A=
		// note: when an element has margin: auto the offsetLeft and marginLeft=0A=
		// are the same in Safari causing offset.left to incorrectly be 0=0A=
		offset.top  -=3D parseFloat( jQuery.css(elem, "marginTop") ) || 0;=0A=
		offset.left -=3D parseFloat( jQuery.css(elem, "marginLeft") ) || 0;=0A=
=0A=
		// Add offsetParent borders=0A=
		parentOffset.top  +=3D parseFloat( jQuery.css(offsetParent[0], =
"borderTopWidth") ) || 0;=0A=
		parentOffset.left +=3D parseFloat( jQuery.css(offsetParent[0], =
"borderLeftWidth") ) || 0;=0A=
=0A=
		// Subtract the two offsets=0A=
		return {=0A=
			top:  offset.top  - parentOffset.top,=0A=
			left: offset.left - parentOffset.left=0A=
		};=0A=
	},=0A=
=0A=
	offsetParent: function() {=0A=
		return this.map(function() {=0A=
			var offsetParent =3D this.offsetParent || document.body;=0A=
			while ( offsetParent && (!rroot.test(offsetParent.nodeName) && =
jQuery.css(offsetParent, "position") =3D=3D=3D "static") ) {=0A=
				offsetParent =3D offsetParent.offsetParent;=0A=
			}=0A=
			return offsetParent;=0A=
		});=0A=
	}=0A=
});=0A=
=0A=
=0A=
// Create scrollLeft and scrollTop methods=0A=
jQuery.each( ["Left", "Top"], function( i, name ) {=0A=
	var method =3D "scroll" + name;=0A=
=0A=
	jQuery.fn[ method ] =3D function( val ) {=0A=
		var elem, win;=0A=
=0A=
		if ( val =3D=3D=3D undefined ) {=0A=
			elem =3D this[ 0 ];=0A=
=0A=
			if ( !elem ) {=0A=
				return null;=0A=
			}=0A=
=0A=
			win =3D getWindow( elem );=0A=
=0A=
			// Return the scroll offset=0A=
			return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : =
"pageXOffset" ] :=0A=
				jQuery.support.boxModel && win.document.documentElement[ method ] ||=0A=
					win.document.body[ method ] :=0A=
				elem[ method ];=0A=
		}=0A=
=0A=
		// Set the scroll offset=0A=
		return this.each(function() {=0A=
			win =3D getWindow( this );=0A=
=0A=
			if ( win ) {=0A=
				win.scrollTo(=0A=
					!i ? val : jQuery( win ).scrollLeft(),=0A=
					 i ? val : jQuery( win ).scrollTop()=0A=
				);=0A=
=0A=
			} else {=0A=
				this[ method ] =3D val;=0A=
			}=0A=
		});=0A=
	};=0A=
});=0A=
=0A=
function getWindow( elem ) {=0A=
	return jQuery.isWindow( elem ) ?=0A=
		elem :=0A=
		elem.nodeType =3D=3D=3D 9 ?=0A=
			elem.defaultView || elem.parentWindow :=0A=
			false;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
// Create innerHeight, innerWidth, outerHeight and outerWidth methods=0A=
jQuery.each([ "Height", "Width" ], function( i, name ) {=0A=
=0A=
	var type =3D name.toLowerCase();=0A=
=0A=
	// innerHeight and innerWidth=0A=
	jQuery.fn["inner" + name] =3D function() {=0A=
		return this[0] ?=0A=
			parseFloat( jQuery.css( this[0], type, "padding" ) ) :=0A=
			null;=0A=
	};=0A=
=0A=
	// outerHeight and outerWidth=0A=
	jQuery.fn["outer" + name] =3D function( margin ) {=0A=
		return this[0] ?=0A=
			parseFloat( jQuery.css( this[0], type, margin ? "margin" : "border" ) =
) :=0A=
			null;=0A=
	};=0A=
=0A=
	jQuery.fn[ type ] =3D function( size ) {=0A=
		// Get window width or height=0A=
		var elem =3D this[0];=0A=
		if ( !elem ) {=0A=
			return size =3D=3D null ? null : this;=0A=
		}=0A=
=0A=
		if ( jQuery.isFunction( size ) ) {=0A=
			return this.each(function( i ) {=0A=
				var self =3D jQuery( this );=0A=
				self[ type ]( size.call( this, i, self[ type ]() ) );=0A=
			});=0A=
		}=0A=
=0A=
		if ( jQuery.isWindow( elem ) ) {=0A=
			// Everyone else use document.documentElement or document.body =
depending on Quirks vs Standards mode=0A=
			// 3rd condition allows Nokia support, as it supports the docElem =
prop but not CSS1Compat=0A=
			var docElemProp =3D elem.document.documentElement[ "client" + name ];=0A=
			return elem.document.compatMode =3D=3D=3D "CSS1Compat" && docElemProp =
||=0A=
				elem.document.body[ "client" + name ] || docElemProp;=0A=
=0A=
		// Get document width or height=0A=
		} else if ( elem.nodeType =3D=3D=3D 9 ) {=0A=
			// Either scroll[Width/Height] or offset[Width/Height], whichever is =
greater=0A=
			return Math.max(=0A=
				elem.documentElement["client" + name],=0A=
				elem.body["scroll" + name], elem.documentElement["scroll" + name],=0A=
				elem.body["offset" + name], elem.documentElement["offset" + name]=0A=
			);=0A=
=0A=
		// Get or set width or height on the element=0A=
		} else if ( size =3D=3D=3D undefined ) {=0A=
			var orig =3D jQuery.css( elem, type ),=0A=
				ret =3D parseFloat( orig );=0A=
=0A=
			return jQuery.isNaN( ret ) ? orig : ret;=0A=
=0A=
		// Set the width or height on the element (default to pixels if value =
is unitless)=0A=
		} else {=0A=
			return this.css( type, typeof size =3D=3D=3D "string" ? size : size + =
"px" );=0A=
		}=0A=
	};=0A=
=0A=
});=0A=
=0A=
=0A=
window.jQuery =3D window.$ =3D jQuery;=0A=
})(window);=0A=

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Public/javascript/jquery-ui-1.8.13.js

/*!=0A=
 * jQuery UI 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
// prevent duplicate loading=0A=
// this is only a problem because we proxy existing functions=0A=
// and we don't want to double proxy them=0A=
$.ui =3D $.ui || {};=0A=
if ( $.ui.version ) {=0A=
	return;=0A=
}=0A=
=0A=
$.extend( $.ui, {=0A=
	version: "1.8.13",=0A=
=0A=
	keyCode: {=0A=
		ALT: 18,=0A=
		BACKSPACE: 8,=0A=
		CAPS_LOCK: 20,=0A=
		COMMA: 188,=0A=
		COMMAND: 91,=0A=
		COMMAND_LEFT: 91, // COMMAND=0A=
		COMMAND_RIGHT: 93,=0A=
		CONTROL: 17,=0A=
		DELETE: 46,=0A=
		DOWN: 40,=0A=
		END: 35,=0A=
		ENTER: 13,=0A=
		ESCAPE: 27,=0A=
		HOME: 36,=0A=
		INSERT: 45,=0A=
		LEFT: 37,=0A=
		MENU: 93, // COMMAND_RIGHT=0A=
		NUMPAD_ADD: 107,=0A=
		NUMPAD_DECIMAL: 110,=0A=
		NUMPAD_DIVIDE: 111,=0A=
		NUMPAD_ENTER: 108,=0A=
		NUMPAD_MULTIPLY: 106,=0A=
		NUMPAD_SUBTRACT: 109,=0A=
		PAGE_DOWN: 34,=0A=
		PAGE_UP: 33,=0A=
		PERIOD: 190,=0A=
		RIGHT: 39,=0A=
		SHIFT: 16,=0A=
		SPACE: 32,=0A=
		TAB: 9,=0A=
		UP: 38,=0A=
		WINDOWS: 91 // COMMAND=0A=
	}=0A=
});=0A=
=0A=
// plugins=0A=
$.fn.extend({=0A=
	_focus: $.fn.focus,=0A=
	focus: function( delay, fn ) {=0A=
		return typeof delay =3D=3D=3D "number" ?=0A=
			this.each(function() {=0A=
				var elem =3D this;=0A=
				setTimeout(function() {=0A=
					$( elem ).focus();=0A=
					if ( fn ) {=0A=
						fn.call( elem );=0A=
					}=0A=
				}, delay );=0A=
			}) :=0A=
			this._focus.apply( this, arguments );=0A=
	},=0A=
=0A=
	scrollParent: function() {=0A=
		var scrollParent;=0A=
		if (($.browser.msie && =
(/(static|relative)/).test(this.css('position'))) || =
(/absolute/).test(this.css('position'))) {=0A=
			scrollParent =3D this.parents().filter(function() {=0A=
				return =
(/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && =
(/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflo=
w-y',1)+$.curCSS(this,'overflow-x',1));=0A=
			}).eq(0);=0A=
		} else {=0A=
			scrollParent =3D this.parents().filter(function() {=0A=
				return =
(/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflo=
w-y',1)+$.curCSS(this,'overflow-x',1));=0A=
			}).eq(0);=0A=
		}=0A=
=0A=
		return (/fixed/).test(this.css('position')) || !scrollParent.length ? =
$(document) : scrollParent;=0A=
	},=0A=
=0A=
	zIndex: function( zIndex ) {=0A=
		if ( zIndex !=3D=3D undefined ) {=0A=
			return this.css( "zIndex", zIndex );=0A=
		}=0A=
=0A=
		if ( this.length ) {=0A=
			var elem =3D $( this[ 0 ] ), position, value;=0A=
			while ( elem.length && elem[ 0 ] !=3D=3D document ) {=0A=
				// Ignore z-index if position is set to a value where z-index is =
ignored by the browser=0A=
				// This makes behavior of this function consistent across browsers=0A=
				// WebKit always returns auto if the element is positioned=0A=
				position =3D elem.css( "position" );=0A=
				if ( position =3D=3D=3D "absolute" || position =3D=3D=3D "relative" =
|| position =3D=3D=3D "fixed" ) {=0A=
					// IE returns 0 when zIndex is not specified=0A=
					// other browsers return a string=0A=
					// we ignore the case of nested elements with an explicit value of 0=0A=
					// <div style=3D"z-index: -10;"><div style=3D"z-index: =
0;"></div></div>=0A=
					value =3D parseInt( elem.css( "zIndex" ), 10 );=0A=
					if ( !isNaN( value ) && value !=3D=3D 0 ) {=0A=
						return value;=0A=
					}=0A=
				}=0A=
				elem =3D elem.parent();=0A=
			}=0A=
		}=0A=
=0A=
		return 0;=0A=
	},=0A=
=0A=
	disableSelection: function() {=0A=
		return this.bind( ( $.support.selectstart ? "selectstart" : =
"mousedown" ) +=0A=
			".ui-disableSelection", function( event ) {=0A=
				event.preventDefault();=0A=
			});=0A=
	},=0A=
=0A=
	enableSelection: function() {=0A=
		return this.unbind( ".ui-disableSelection" );=0A=
	}=0A=
});=0A=
=0A=
$.each( [ "Width", "Height" ], function( i, name ) {=0A=
	var side =3D name =3D=3D=3D "Width" ? [ "Left", "Right" ] : [ "Top", =
"Bottom" ],=0A=
		type =3D name.toLowerCase(),=0A=
		orig =3D {=0A=
			innerWidth: $.fn.innerWidth,=0A=
			innerHeight: $.fn.innerHeight,=0A=
			outerWidth: $.fn.outerWidth,=0A=
			outerHeight: $.fn.outerHeight=0A=
		};=0A=
=0A=
	function reduce( elem, size, border, margin ) {=0A=
		$.each( side, function() {=0A=
			size -=3D parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0;=0A=
			if ( border ) {=0A=
				size -=3D parseFloat( $.curCSS( elem, "border" + this + "Width", =
true) ) || 0;=0A=
			}=0A=
			if ( margin ) {=0A=
				size -=3D parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0;=0A=
			}=0A=
		});=0A=
		return size;=0A=
	}=0A=
=0A=
	$.fn[ "inner" + name ] =3D function( size ) {=0A=
		if ( size =3D=3D=3D undefined ) {=0A=
			return orig[ "inner" + name ].call( this );=0A=
		}=0A=
=0A=
		return this.each(function() {=0A=
			$( this ).css( type, reduce( this, size ) + "px" );=0A=
		});=0A=
	};=0A=
=0A=
	$.fn[ "outer" + name] =3D function( size, margin ) {=0A=
		if ( typeof size !=3D=3D "number" ) {=0A=
			return orig[ "outer" + name ].call( this, size );=0A=
		}=0A=
=0A=
		return this.each(function() {=0A=
			$( this).css( type, reduce( this, size, true, margin ) + "px" );=0A=
		});=0A=
	};=0A=
});=0A=
=0A=
// selectors=0A=
function focusable( element, isTabIndexNotNaN ) {=0A=
	var nodeName =3D element.nodeName.toLowerCase();=0A=
	if ( "area" =3D=3D=3D nodeName ) {=0A=
		var map =3D element.parentNode,=0A=
			mapName =3D map.name,=0A=
			img;=0A=
		if ( !element.href || !mapName || map.nodeName.toLowerCase() !=3D=3D =
"map" ) {=0A=
			return false;=0A=
		}=0A=
		img =3D $( "img[usemap=3D#" + mapName + "]" )[0];=0A=
		return !!img && visible( img );=0A=
	}=0A=
	return ( /input|select|textarea|button|object/.test( nodeName )=0A=
		? !element.disabled=0A=
		: "a" =3D=3D nodeName=0A=
			? element.href || isTabIndexNotNaN=0A=
			: isTabIndexNotNaN)=0A=
		// the element and all of its ancestors must be visible=0A=
		&& visible( element );=0A=
}=0A=
=0A=
function visible( element ) {=0A=
	return !$( element ).parents().andSelf().filter(function() {=0A=
		return $.curCSS( this, "visibility" ) =3D=3D=3D "hidden" ||=0A=
			$.expr.filters.hidden( this );=0A=
	}).length;=0A=
}=0A=
=0A=
$.extend( $.expr[ ":" ], {=0A=
	data: function( elem, i, match ) {=0A=
		return !!$.data( elem, match[ 3 ] );=0A=
	},=0A=
=0A=
	focusable: function( element ) {=0A=
		return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) );=0A=
	},=0A=
=0A=
	tabbable: function( element ) {=0A=
		var tabIndex =3D $.attr( element, "tabindex" ),=0A=
			isTabIndexNaN =3D isNaN( tabIndex );=0A=
		return ( isTabIndexNaN || tabIndex >=3D 0 ) && focusable( element, =
!isTabIndexNaN );=0A=
	}=0A=
});=0A=
=0A=
// support=0A=
$(function() {=0A=
	var body =3D document.body,=0A=
		div =3D body.appendChild( div =3D document.createElement( "div" ) );=0A=
=0A=
	$.extend( div.style, {=0A=
		minHeight: "100px",=0A=
		height: "auto",=0A=
		padding: 0,=0A=
		borderWidth: 0=0A=
	});=0A=
=0A=
	$.support.minHeight =3D div.offsetHeight =3D=3D=3D 100;=0A=
	$.support.selectstart =3D "onselectstart" in div;=0A=
=0A=
	// set display to none to avoid a layout bug in IE=0A=
	// http://dev.jquery.com/ticket/4014=0A=
	body.removeChild( div ).style.display =3D "none";=0A=
});=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
// deprecated=0A=
$.extend( $.ui, {=0A=
	// $.ui.plugin is deprecated.  Use the proxy pattern instead.=0A=
	plugin: {=0A=
		add: function( module, option, set ) {=0A=
			var proto =3D $.ui[ module ].prototype;=0A=
			for ( var i in set ) {=0A=
				proto.plugins[ i ] =3D proto.plugins[ i ] || [];=0A=
				proto.plugins[ i ].push( [ option, set[ i ] ] );=0A=
			}=0A=
		},=0A=
		call: function( instance, name, args ) {=0A=
			var set =3D instance.plugins[ name ];=0A=
			if ( !set || !instance.element[ 0 ].parentNode ) {=0A=
				return;=0A=
			}=0A=
	=0A=
			for ( var i =3D 0; i < set.length; i++ ) {=0A=
				if ( instance.options[ set[ i ][ 0 ] ] ) {=0A=
					set[ i ][ 1 ].apply( instance.element, args );=0A=
				}=0A=
			}=0A=
		}=0A=
	},=0A=
	=0A=
	// will be deprecated when we switch to jQuery 1.4 - use =
jQuery.contains()=0A=
	contains: function( a, b ) {=0A=
		return document.compareDocumentPosition ?=0A=
			a.compareDocumentPosition( b ) & 16 :=0A=
			a !=3D=3D b && a.contains( b );=0A=
	},=0A=
	=0A=
	// only used by resizable=0A=
	hasScroll: function( el, a ) {=0A=
	=0A=
		//If overflow is hidden, the element might have extra content, but the =
user wants to hide it=0A=
		if ( $( el ).css( "overflow" ) =3D=3D=3D "hidden") {=0A=
			return false;=0A=
		}=0A=
	=0A=
		var scroll =3D ( a && a =3D=3D=3D "left" ) ? "scrollLeft" : =
"scrollTop",=0A=
			has =3D false;=0A=
	=0A=
		if ( el[ scroll ] > 0 ) {=0A=
			return true;=0A=
		}=0A=
	=0A=
		// TODO: determine which cases actually cause this to happen=0A=
		// if the element doesn't have the scroll set, see if it's possible to=0A=
		// set the scroll=0A=
		el[ scroll ] =3D 1;=0A=
		has =3D ( el[ scroll ] > 0 );=0A=
		el[ scroll ] =3D 0;=0A=
		return has;=0A=
	},=0A=
	=0A=
	// these are odd functions, fix the API or move into individual plugins=0A=
	isOverAxis: function( x, reference, size ) {=0A=
		//Determines when x coordinate is over "b" element axis=0A=
		return ( x > reference ) && ( x < ( reference + size ) );=0A=
	},=0A=
	isOver: function( y, x, top, left, height, width ) {=0A=
		//Determines when x, y coordinates is over "b" element=0A=
		return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, =
width );=0A=
	}=0A=
});=0A=
=0A=
})( jQuery );=0A=
/*!=0A=
 * jQuery UI Widget 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Widget=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
// jQuery 1.4+=0A=
if ( $.cleanData ) {=0A=
	var _cleanData =3D $.cleanData;=0A=
	$.cleanData =3D function( elems ) {=0A=
		for ( var i =3D 0, elem; (elem =3D elems[i]) !=3D null; i++ ) {=0A=
			$( elem ).triggerHandler( "remove" );=0A=
		}=0A=
		_cleanData( elems );=0A=
	};=0A=
} else {=0A=
	var _remove =3D $.fn.remove;=0A=
	$.fn.remove =3D function( selector, keepData ) {=0A=
		return this.each(function() {=0A=
			if ( !keepData ) {=0A=
				if ( !selector || $.filter( selector, [ this ] ).length ) {=0A=
					$( "*", this ).add( [ this ] ).each(function() {=0A=
						$( this ).triggerHandler( "remove" );=0A=
					});=0A=
				}=0A=
			}=0A=
			return _remove.call( $(this), selector, keepData );=0A=
		});=0A=
	};=0A=
}=0A=
=0A=
$.widget =3D function( name, base, prototype ) {=0A=
	var namespace =3D name.split( "." )[ 0 ],=0A=
		fullName;=0A=
	name =3D name.split( "." )[ 1 ];=0A=
	fullName =3D namespace + "-" + name;=0A=
=0A=
	if ( !prototype ) {=0A=
		prototype =3D base;=0A=
		base =3D $.Widget;=0A=
	}=0A=
=0A=
	// create selector for plugin=0A=
	$.expr[ ":" ][ fullName ] =3D function( elem ) {=0A=
		return !!$.data( elem, name );=0A=
	};=0A=
=0A=
	$[ namespace ] =3D $[ namespace ] || {};=0A=
	$[ namespace ][ name ] =3D function( options, element ) {=0A=
		// allow instantiation without initializing for simple inheritance=0A=
		if ( arguments.length ) {=0A=
			this._createWidget( options, element );=0A=
		}=0A=
	};=0A=
=0A=
	var basePrototype =3D new base();=0A=
	// we need to make the options hash a property directly on the new =
instance=0A=
	// otherwise we'll modify the options hash on the prototype that we're=0A=
	// inheriting from=0A=
//	$.each( basePrototype, function( key, val ) {=0A=
//		if ( $.isPlainObject(val) ) {=0A=
//			basePrototype[ key ] =3D $.extend( {}, val );=0A=
//		}=0A=
//	});=0A=
	basePrototype.options =3D $.extend( true, {}, basePrototype.options );=0A=
	$[ namespace ][ name ].prototype =3D $.extend( true, basePrototype, {=0A=
		namespace: namespace,=0A=
		widgetName: name,=0A=
		widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix =
|| name,=0A=
		widgetBaseClass: fullName=0A=
	}, prototype );=0A=
=0A=
	$.widget.bridge( name, $[ namespace ][ name ] );=0A=
};=0A=
=0A=
$.widget.bridge =3D function( name, object ) {=0A=
	$.fn[ name ] =3D function( options ) {=0A=
		var isMethodCall =3D typeof options =3D=3D=3D "string",=0A=
			args =3D Array.prototype.slice.call( arguments, 1 ),=0A=
			returnValue =3D this;=0A=
=0A=
		// allow multiple hashes to be passed on init=0A=
		options =3D !isMethodCall && args.length ?=0A=
			$.extend.apply( null, [ true, options ].concat(args) ) :=0A=
			options;=0A=
=0A=
		// prevent calls to internal methods=0A=
		if ( isMethodCall && options.charAt( 0 ) =3D=3D=3D "_" ) {=0A=
			return returnValue;=0A=
		}=0A=
=0A=
		if ( isMethodCall ) {=0A=
			this.each(function() {=0A=
				var instance =3D $.data( this, name ),=0A=
					methodValue =3D instance && $.isFunction( instance[options] ) ?=0A=
						instance[ options ].apply( instance, args ) :=0A=
						instance;=0A=
				// TODO: add this back in 1.9 and use $.error() (see #5972)=0A=
//				if ( !instance ) {=0A=
//					throw "cannot call methods on " + name + " prior to =
initialization; " +=0A=
//						"attempted to call method '" + options + "'";=0A=
//				}=0A=
//				if ( !$.isFunction( instance[options] ) ) {=0A=
//					throw "no such method '" + options + "' for " + name + " widget =
instance";=0A=
//				}=0A=
//				var methodValue =3D instance[ options ].apply( instance, args );=0A=
				if ( methodValue !=3D=3D instance && methodValue !=3D=3D undefined ) =
{=0A=
					returnValue =3D methodValue;=0A=
					return false;=0A=
				}=0A=
			});=0A=
		} else {=0A=
			this.each(function() {=0A=
				var instance =3D $.data( this, name );=0A=
				if ( instance ) {=0A=
					instance.option( options || {} )._init();=0A=
				} else {=0A=
					$.data( this, name, new object( options, this ) );=0A=
				}=0A=
			});=0A=
		}=0A=
=0A=
		return returnValue;=0A=
	};=0A=
};=0A=
=0A=
$.Widget =3D function( options, element ) {=0A=
	// allow instantiation without initializing for simple inheritance=0A=
	if ( arguments.length ) {=0A=
		this._createWidget( options, element );=0A=
	}=0A=
};=0A=
=0A=
$.Widget.prototype =3D {=0A=
	widgetName: "widget",=0A=
	widgetEventPrefix: "",=0A=
	options: {=0A=
		disabled: false=0A=
	},=0A=
	_createWidget: function( options, element ) {=0A=
		// $.widget.bridge stores the plugin instance, but we do it anyway=0A=
		// so that it's stored even before the _create function runs=0A=
		$.data( element, this.widgetName, this );=0A=
		this.element =3D $( element );=0A=
		this.options =3D $.extend( true, {},=0A=
			this.options,=0A=
			this._getCreateOptions(),=0A=
			options );=0A=
=0A=
		var self =3D this;=0A=
		this.element.bind( "remove." + this.widgetName, function() {=0A=
			self.destroy();=0A=
		});=0A=
=0A=
		this._create();=0A=
		this._trigger( "create" );=0A=
		this._init();=0A=
	},=0A=
	_getCreateOptions: function() {=0A=
		return $.metadata && $.metadata.get( this.element[0] )[ =
this.widgetName ];=0A=
	},=0A=
	_create: function() {},=0A=
	_init: function() {},=0A=
=0A=
	destroy: function() {=0A=
		this.element=0A=
			.unbind( "." + this.widgetName )=0A=
			.removeData( this.widgetName );=0A=
		this.widget()=0A=
			.unbind( "." + this.widgetName )=0A=
			.removeAttr( "aria-disabled" )=0A=
			.removeClass(=0A=
				this.widgetBaseClass + "-disabled " +=0A=
				"ui-state-disabled" );=0A=
	},=0A=
=0A=
	widget: function() {=0A=
		return this.element;=0A=
	},=0A=
=0A=
	option: function( key, value ) {=0A=
		var options =3D key;=0A=
=0A=
		if ( arguments.length =3D=3D=3D 0 ) {=0A=
			// don't return a reference to the internal hash=0A=
			return $.extend( {}, this.options );=0A=
		}=0A=
=0A=
		if  (typeof key =3D=3D=3D "string" ) {=0A=
			if ( value =3D=3D=3D undefined ) {=0A=
				return this.options[ key ];=0A=
			}=0A=
			options =3D {};=0A=
			options[ key ] =3D value;=0A=
		}=0A=
=0A=
		this._setOptions( options );=0A=
=0A=
		return this;=0A=
	},=0A=
	_setOptions: function( options ) {=0A=
		var self =3D this;=0A=
		$.each( options, function( key, value ) {=0A=
			self._setOption( key, value );=0A=
		});=0A=
=0A=
		return this;=0A=
	},=0A=
	_setOption: function( key, value ) {=0A=
		this.options[ key ] =3D value;=0A=
=0A=
		if ( key =3D=3D=3D "disabled" ) {=0A=
			this.widget()=0A=
				[ value ? "addClass" : "removeClass"](=0A=
					this.widgetBaseClass + "-disabled" + " " +=0A=
					"ui-state-disabled" )=0A=
				.attr( "aria-disabled", value );=0A=
		}=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	enable: function() {=0A=
		return this._setOption( "disabled", false );=0A=
	},=0A=
	disable: function() {=0A=
		return this._setOption( "disabled", true );=0A=
	},=0A=
=0A=
	_trigger: function( type, event, data ) {=0A=
		var callback =3D this.options[ type ];=0A=
=0A=
		event =3D $.Event( event );=0A=
		event.type =3D ( type =3D=3D=3D this.widgetEventPrefix ?=0A=
			type :=0A=
			this.widgetEventPrefix + type ).toLowerCase();=0A=
		data =3D data || {};=0A=
=0A=
		// copy original event properties over to the new event=0A=
		// this would happen if we could call $.event.fix instead of $.Event=0A=
		// but we don't have a way to force an event to be fixed multiple times=0A=
		if ( event.originalEvent ) {=0A=
			for ( var i =3D $.event.props.length, prop; i; ) {=0A=
				prop =3D $.event.props[ --i ];=0A=
				event[ prop ] =3D event.originalEvent[ prop ];=0A=
			}=0A=
		}=0A=
=0A=
		this.element.trigger( event, data );=0A=
=0A=
		return !( $.isFunction(callback) &&=0A=
			callback.call( this.element[0], event, data ) =3D=3D=3D false ||=0A=
			event.isDefaultPrevented() );=0A=
	}=0A=
};=0A=
=0A=
})( jQuery );=0A=
/*!=0A=
 * jQuery UI Mouse 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Mouse=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.ui.widget.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
var mouseHandled =3D false;=0A=
$(document).mousedown(function(e) {=0A=
	mouseHandled =3D false;=0A=
});=0A=
=0A=
$.widget("ui.mouse", {=0A=
	options: {=0A=
		cancel: ':input,option',=0A=
		distance: 1,=0A=
		delay: 0=0A=
	},=0A=
	_mouseInit: function() {=0A=
		var self =3D this;=0A=
=0A=
		this.element=0A=
			.bind('mousedown.'+this.widgetName, function(event) {=0A=
				return self._mouseDown(event);=0A=
			})=0A=
			.bind('click.'+this.widgetName, function(event) {=0A=
				if (true =3D=3D=3D $.data(event.target, self.widgetName + =
'.preventClickEvent')) {=0A=
				    $.removeData(event.target, self.widgetName + =
'.preventClickEvent');=0A=
					event.stopImmediatePropagation();=0A=
					return false;=0A=
				}=0A=
			});=0A=
=0A=
		this.started =3D false;=0A=
	},=0A=
=0A=
	// TODO: make sure destroying one instance of mouse doesn't mess with=0A=
	// other instances of mouse=0A=
	_mouseDestroy: function() {=0A=
		this.element.unbind('.'+this.widgetName);=0A=
	},=0A=
=0A=
	_mouseDown: function(event) {=0A=
		// don't let more than one widget handle mouseStart=0A=
		if(mouseHandled) {return};=0A=
=0A=
		// we may have missed mouseup (out of window)=0A=
		(this._mouseStarted && this._mouseUp(event));=0A=
=0A=
		this._mouseDownEvent =3D event;=0A=
=0A=
		var self =3D this,=0A=
			btnIsLeft =3D (event.which =3D=3D 1),=0A=
			elIsCancel =3D (typeof this.options.cancel =3D=3D "string" ? =
$(event.target).parents().add(event.target).filter(this.options.cancel).l=
ength : false);=0A=
		if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {=0A=
			return true;=0A=
		}=0A=
=0A=
		this.mouseDelayMet =3D !this.options.delay;=0A=
		if (!this.mouseDelayMet) {=0A=
			this._mouseDelayTimer =3D setTimeout(function() {=0A=
				self.mouseDelayMet =3D true;=0A=
			}, this.options.delay);=0A=
		}=0A=
=0A=
		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {=0A=
			this._mouseStarted =3D (this._mouseStart(event) !=3D=3D false);=0A=
			if (!this._mouseStarted) {=0A=
				event.preventDefault();=0A=
				return true;=0A=
			}=0A=
		}=0A=
=0A=
		// Click event may never have fired (Gecko & Opera)=0A=
		if (true =3D=3D=3D $.data(event.target, this.widgetName + =
'.preventClickEvent')) {=0A=
			$.removeData(event.target, this.widgetName + '.preventClickEvent');=0A=
		}=0A=
=0A=
		// these delegates are required to keep context=0A=
		this._mouseMoveDelegate =3D function(event) {=0A=
			return self._mouseMove(event);=0A=
		};=0A=
		this._mouseUpDelegate =3D function(event) {=0A=
			return self._mouseUp(event);=0A=
		};=0A=
		$(document)=0A=
			.bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)=0A=
			.bind('mouseup.'+this.widgetName, this._mouseUpDelegate);=0A=
=0A=
		event.preventDefault();=0A=
		=0A=
		mouseHandled =3D true;=0A=
		return true;=0A=
	},=0A=
=0A=
	_mouseMove: function(event) {=0A=
		// IE mouseup check - mouseup happened when mouse was out of window=0A=
		if ($.browser.msie && !(document.documentMode >=3D 9) && =
!event.button) {=0A=
			return this._mouseUp(event);=0A=
		}=0A=
=0A=
		if (this._mouseStarted) {=0A=
			this._mouseDrag(event);=0A=
			return event.preventDefault();=0A=
		}=0A=
=0A=
		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {=0A=
			this._mouseStarted =3D=0A=
				(this._mouseStart(this._mouseDownEvent, event) !=3D=3D false);=0A=
			(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));=0A=
		}=0A=
=0A=
		return !this._mouseStarted;=0A=
	},=0A=
=0A=
	_mouseUp: function(event) {=0A=
		$(document)=0A=
			.unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)=0A=
			.unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);=0A=
=0A=
		if (this._mouseStarted) {=0A=
			this._mouseStarted =3D false;=0A=
=0A=
			if (event.target =3D=3D this._mouseDownEvent.target) {=0A=
			    $.data(event.target, this.widgetName + '.preventClickEvent', =
true);=0A=
			}=0A=
=0A=
			this._mouseStop(event);=0A=
		}=0A=
=0A=
		return false;=0A=
	},=0A=
=0A=
	_mouseDistanceMet: function(event) {=0A=
		return (Math.max(=0A=
				Math.abs(this._mouseDownEvent.pageX - event.pageX),=0A=
				Math.abs(this._mouseDownEvent.pageY - event.pageY)=0A=
			) >=3D this.options.distance=0A=
		);=0A=
	},=0A=
=0A=
	_mouseDelayMet: function(event) {=0A=
		return this.mouseDelayMet;=0A=
	},=0A=
=0A=
	// These are placeholder methods, to be overriden by extending plugin=0A=
	_mouseStart: function(event) {},=0A=
	_mouseDrag: function(event) {},=0A=
	_mouseStop: function(event) {},=0A=
	_mouseCapture: function(event) { return true; }=0A=
});=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Position 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Position=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.ui =3D $.ui || {};=0A=
=0A=
var horizontalPositions =3D /left|center|right/,=0A=
	verticalPositions =3D /top|center|bottom/,=0A=
	center =3D "center",=0A=
	_position =3D $.fn.position,=0A=
	_offset =3D $.fn.offset;=0A=
=0A=
$.fn.position =3D function( options ) {=0A=
	if ( !options || !options.of ) {=0A=
		return _position.apply( this, arguments );=0A=
	}=0A=
=0A=
	// make a copy, we don't want to modify arguments=0A=
	options =3D $.extend( {}, options );=0A=
=0A=
	var target =3D $( options.of ),=0A=
		targetElem =3D target[0],=0A=
		collision =3D ( options.collision || "flip" ).split( " " ),=0A=
		offset =3D options.offset ? options.offset.split( " " ) : [ 0, 0 ],=0A=
		targetWidth,=0A=
		targetHeight,=0A=
		basePosition;=0A=
=0A=
	if ( targetElem.nodeType =3D=3D=3D 9 ) {=0A=
		targetWidth =3D target.width();=0A=
		targetHeight =3D target.height();=0A=
		basePosition =3D { top: 0, left: 0 };=0A=
	// TODO: use $.isWindow() in 1.9=0A=
	} else if ( targetElem.setTimeout ) {=0A=
		targetWidth =3D target.width();=0A=
		targetHeight =3D target.height();=0A=
		basePosition =3D { top: target.scrollTop(), left: target.scrollLeft() =
};=0A=
	} else if ( targetElem.preventDefault ) {=0A=
		// force left top to allow flipping=0A=
		options.at =3D "left top";=0A=
		targetWidth =3D targetHeight =3D 0;=0A=
		basePosition =3D { top: options.of.pageY, left: options.of.pageX };=0A=
	} else {=0A=
		targetWidth =3D target.outerWidth();=0A=
		targetHeight =3D target.outerHeight();=0A=
		basePosition =3D target.offset();=0A=
	}=0A=
=0A=
	// force my and at to have valid horizontal and veritcal positions=0A=
	// if a value is missing or invalid, it will be converted to center =0A=
	$.each( [ "my", "at" ], function() {=0A=
		var pos =3D ( options[this] || "" ).split( " " );=0A=
		if ( pos.length =3D=3D=3D 1) {=0A=
			pos =3D horizontalPositions.test( pos[0] ) ?=0A=
				pos.concat( [center] ) :=0A=
				verticalPositions.test( pos[0] ) ?=0A=
					[ center ].concat( pos ) :=0A=
					[ center, center ];=0A=
		}=0A=
		pos[ 0 ] =3D horizontalPositions.test( pos[0] ) ? pos[ 0 ] : center;=0A=
		pos[ 1 ] =3D verticalPositions.test( pos[1] ) ? pos[ 1 ] : center;=0A=
		options[ this ] =3D pos;=0A=
	});=0A=
=0A=
	// normalize collision option=0A=
	if ( collision.length =3D=3D=3D 1 ) {=0A=
		collision[ 1 ] =3D collision[ 0 ];=0A=
	}=0A=
=0A=
	// normalize offset option=0A=
	offset[ 0 ] =3D parseInt( offset[0], 10 ) || 0;=0A=
	if ( offset.length =3D=3D=3D 1 ) {=0A=
		offset[ 1 ] =3D offset[ 0 ];=0A=
	}=0A=
	offset[ 1 ] =3D parseInt( offset[1], 10 ) || 0;=0A=
=0A=
	if ( options.at[0] =3D=3D=3D "right" ) {=0A=
		basePosition.left +=3D targetWidth;=0A=
	} else if ( options.at[0] =3D=3D=3D center ) {=0A=
		basePosition.left +=3D targetWidth / 2;=0A=
	}=0A=
=0A=
	if ( options.at[1] =3D=3D=3D "bottom" ) {=0A=
		basePosition.top +=3D targetHeight;=0A=
	} else if ( options.at[1] =3D=3D=3D center ) {=0A=
		basePosition.top +=3D targetHeight / 2;=0A=
	}=0A=
=0A=
	basePosition.left +=3D offset[ 0 ];=0A=
	basePosition.top +=3D offset[ 1 ];=0A=
=0A=
	return this.each(function() {=0A=
		var elem =3D $( this ),=0A=
			elemWidth =3D elem.outerWidth(),=0A=
			elemHeight =3D elem.outerHeight(),=0A=
			marginLeft =3D parseInt( $.curCSS( this, "marginLeft", true ) ) || 0,=0A=
			marginTop =3D parseInt( $.curCSS( this, "marginTop", true ) ) || 0,=0A=
			collisionWidth =3D elemWidth + marginLeft +=0A=
				( parseInt( $.curCSS( this, "marginRight", true ) ) || 0 ),=0A=
			collisionHeight =3D elemHeight + marginTop +=0A=
				( parseInt( $.curCSS( this, "marginBottom", true ) ) || 0 ),=0A=
			position =3D $.extend( {}, basePosition ),=0A=
			collisionPosition;=0A=
=0A=
		if ( options.my[0] =3D=3D=3D "right" ) {=0A=
			position.left -=3D elemWidth;=0A=
		} else if ( options.my[0] =3D=3D=3D center ) {=0A=
			position.left -=3D elemWidth / 2;=0A=
		}=0A=
=0A=
		if ( options.my[1] =3D=3D=3D "bottom" ) {=0A=
			position.top -=3D elemHeight;=0A=
		} else if ( options.my[1] =3D=3D=3D center ) {=0A=
			position.top -=3D elemHeight / 2;=0A=
		}=0A=
=0A=
		// prevent fractions (see #5280)=0A=
		position.left =3D Math.round( position.left );=0A=
		position.top =3D Math.round( position.top );=0A=
=0A=
		collisionPosition =3D {=0A=
			left: position.left - marginLeft,=0A=
			top: position.top - marginTop=0A=
		};=0A=
=0A=
		$.each( [ "left", "top" ], function( i, dir ) {=0A=
			if ( $.ui.position[ collision[i] ] ) {=0A=
				$.ui.position[ collision[i] ][ dir ]( position, {=0A=
					targetWidth: targetWidth,=0A=
					targetHeight: targetHeight,=0A=
					elemWidth: elemWidth,=0A=
					elemHeight: elemHeight,=0A=
					collisionPosition: collisionPosition,=0A=
					collisionWidth: collisionWidth,=0A=
					collisionHeight: collisionHeight,=0A=
					offset: offset,=0A=
					my: options.my,=0A=
					at: options.at=0A=
				});=0A=
			}=0A=
		});=0A=
=0A=
		if ( $.fn.bgiframe ) {=0A=
			elem.bgiframe();=0A=
		}=0A=
		elem.offset( $.extend( position, { using: options.using } ) );=0A=
	});=0A=
};=0A=
=0A=
$.ui.position =3D {=0A=
	fit: {=0A=
		left: function( position, data ) {=0A=
			var win =3D $( window ),=0A=
				over =3D data.collisionPosition.left + data.collisionWidth - =
win.width() - win.scrollLeft();=0A=
			position.left =3D over > 0 ? position.left - over : Math.max( =
position.left - data.collisionPosition.left, position.left );=0A=
		},=0A=
		top: function( position, data ) {=0A=
			var win =3D $( window ),=0A=
				over =3D data.collisionPosition.top + data.collisionHeight - =
win.height() - win.scrollTop();=0A=
			position.top =3D over > 0 ? position.top - over : Math.max( =
position.top - data.collisionPosition.top, position.top );=0A=
		}=0A=
	},=0A=
=0A=
	flip: {=0A=
		left: function( position, data ) {=0A=
			if ( data.at[0] =3D=3D=3D center ) {=0A=
				return;=0A=
			}=0A=
			var win =3D $( window ),=0A=
				over =3D data.collisionPosition.left + data.collisionWidth - =
win.width() - win.scrollLeft(),=0A=
				myOffset =3D data.my[ 0 ] =3D=3D=3D "left" ?=0A=
					-data.elemWidth :=0A=
					data.my[ 0 ] =3D=3D=3D "right" ?=0A=
						data.elemWidth :=0A=
						0,=0A=
				atOffset =3D data.at[ 0 ] =3D=3D=3D "left" ?=0A=
					data.targetWidth :=0A=
					-data.targetWidth,=0A=
				offset =3D -2 * data.offset[ 0 ];=0A=
			position.left +=3D data.collisionPosition.left < 0 ?=0A=
				myOffset + atOffset + offset :=0A=
				over > 0 ?=0A=
					myOffset + atOffset + offset :=0A=
					0;=0A=
		},=0A=
		top: function( position, data ) {=0A=
			if ( data.at[1] =3D=3D=3D center ) {=0A=
				return;=0A=
			}=0A=
			var win =3D $( window ),=0A=
				over =3D data.collisionPosition.top + data.collisionHeight - =
win.height() - win.scrollTop(),=0A=
				myOffset =3D data.my[ 1 ] =3D=3D=3D "top" ?=0A=
					-data.elemHeight :=0A=
					data.my[ 1 ] =3D=3D=3D "bottom" ?=0A=
						data.elemHeight :=0A=
						0,=0A=
				atOffset =3D data.at[ 1 ] =3D=3D=3D "top" ?=0A=
					data.targetHeight :=0A=
					-data.targetHeight,=0A=
				offset =3D -2 * data.offset[ 1 ];=0A=
			position.top +=3D data.collisionPosition.top < 0 ?=0A=
				myOffset + atOffset + offset :=0A=
				over > 0 ?=0A=
					myOffset + atOffset + offset :=0A=
					0;=0A=
		}=0A=
	}=0A=
};=0A=
=0A=
// offset setter from jQuery 1.4=0A=
if ( !$.offset.setOffset ) {=0A=
	$.offset.setOffset =3D function( elem, options ) {=0A=
		// set position first, in-case top/left are set even on static elem=0A=
		if ( /static/.test( $.curCSS( elem, "position" ) ) ) {=0A=
			elem.style.position =3D "relative";=0A=
		}=0A=
		var curElem   =3D $( elem ),=0A=
			curOffset =3D curElem.offset(),=0A=
			curTop    =3D parseInt( $.curCSS( elem, "top",  true ), 10 ) || 0,=0A=
			curLeft   =3D parseInt( $.curCSS( elem, "left", true ), 10)  || 0,=0A=
			props     =3D {=0A=
				top:  (options.top  - curOffset.top)  + curTop,=0A=
				left: (options.left - curOffset.left) + curLeft=0A=
			};=0A=
		=0A=
		if ( 'using' in options ) {=0A=
			options.using.call( elem, props );=0A=
		} else {=0A=
			curElem.css( props );=0A=
		}=0A=
	};=0A=
=0A=
	$.fn.offset =3D function( options ) {=0A=
		var elem =3D this[ 0 ];=0A=
		if ( !elem || !elem.ownerDocument ) { return null; }=0A=
		if ( options ) { =0A=
			return this.each(function() {=0A=
				$.offset.setOffset( this, options );=0A=
			});=0A=
		}=0A=
		return _offset.call( this );=0A=
	};=0A=
}=0A=
=0A=
}( jQuery ));=0A=
/*=0A=
 * jQuery UI Draggable 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Draggables=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.ui.core.js=0A=
 *	jquery.ui.mouse.js=0A=
 *	jquery.ui.widget.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.widget("ui.draggable", $.ui.mouse, {=0A=
	widgetEventPrefix: "drag",=0A=
	options: {=0A=
		addClasses: true,=0A=
		appendTo: "parent",=0A=
		axis: false,=0A=
		connectToSortable: false,=0A=
		containment: false,=0A=
		cursor: "auto",=0A=
		cursorAt: false,=0A=
		grid: false,=0A=
		handle: false,=0A=
		helper: "original",=0A=
		iframeFix: false,=0A=
		opacity: false,=0A=
		refreshPositions: false,=0A=
		revert: false,=0A=
		revertDuration: 500,=0A=
		scope: "default",=0A=
		scroll: true,=0A=
		scrollSensitivity: 20,=0A=
		scrollSpeed: 20,=0A=
		snap: false,=0A=
		snapMode: "both",=0A=
		snapTolerance: 20,=0A=
		stack: false,=0A=
		zIndex: false=0A=
	},=0A=
	_create: function() {=0A=
=0A=
		if (this.options.helper =3D=3D 'original' && =
!(/^(?:r|a|f)/).test(this.element.css("position")))=0A=
			this.element[0].style.position =3D 'relative';=0A=
=0A=
		(this.options.addClasses && this.element.addClass("ui-draggable"));=0A=
		(this.options.disabled && =
this.element.addClass("ui-draggable-disabled"));=0A=
=0A=
		this._mouseInit();=0A=
=0A=
	},=0A=
=0A=
	destroy: function() {=0A=
		if(!this.element.data('draggable')) return;=0A=
		this.element=0A=
			.removeData("draggable")=0A=
			.unbind(".draggable")=0A=
			.removeClass("ui-draggable"=0A=
				+ " ui-draggable-dragging"=0A=
				+ " ui-draggable-disabled");=0A=
		this._mouseDestroy();=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	_mouseCapture: function(event) {=0A=
=0A=
		var o =3D this.options;=0A=
=0A=
		// among others, prevent a drag on a resizable-handle=0A=
		if (this.helper || o.disabled || =
$(event.target).is('.ui-resizable-handle'))=0A=
			return false;=0A=
=0A=
		//Quit if we're not on a valid handle=0A=
		this.handle =3D this._getHandle(event);=0A=
		if (!this.handle)=0A=
			return false;=0A=
		=0A=
		$(o.iframeFix =3D=3D=3D true ? "iframe" : o.iframeFix).each(function() =
{=0A=
			$('<div class=3D"ui-draggable-iframeFix" style=3D"background: =
#fff;"></div>')=0A=
			.css({=0A=
				width: this.offsetWidth+"px", height: this.offsetHeight+"px",=0A=
				position: "absolute", opacity: "0.001", zIndex: 1000=0A=
			})=0A=
			.css($(this).offset())=0A=
			.appendTo("body");=0A=
		});=0A=
=0A=
		return true;=0A=
=0A=
	},=0A=
=0A=
	_mouseStart: function(event) {=0A=
=0A=
		var o =3D this.options;=0A=
=0A=
		//Create and append the visible helper=0A=
		this.helper =3D this._createHelper(event);=0A=
=0A=
		//Cache the helper size=0A=
		this._cacheHelperProportions();=0A=
=0A=
		//If ddmanager is used for droppables, set the global draggable=0A=
		if($.ui.ddmanager)=0A=
			$.ui.ddmanager.current =3D this;=0A=
=0A=
		/*=0A=
		 * - Position generation -=0A=
		 * This block generates everything position related - it's the core of =
draggables.=0A=
		 */=0A=
=0A=
		//Cache the margins of the original element=0A=
		this._cacheMargins();=0A=
=0A=
		//Store the helper's css position=0A=
		this.cssPosition =3D this.helper.css("position");=0A=
		this.scrollParent =3D this.helper.scrollParent();=0A=
=0A=
		//The element's absolute position on the page minus margins=0A=
		this.offset =3D this.positionAbs =3D this.element.offset();=0A=
		this.offset =3D {=0A=
			top: this.offset.top - this.margins.top,=0A=
			left: this.offset.left - this.margins.left=0A=
		};=0A=
=0A=
		$.extend(this.offset, {=0A=
			click: { //Where the click happened, relative to the element=0A=
				left: event.pageX - this.offset.left,=0A=
				top: event.pageY - this.offset.top=0A=
			},=0A=
			parent: this._getParentOffset(),=0A=
			relative: this._getRelativeOffset() //This is a relative to absolute =
position minus the actual position calculation - only used for relative =
positioned helper=0A=
		});=0A=
=0A=
		//Generate the original position=0A=
		this.originalPosition =3D this.position =3D =
this._generatePosition(event);=0A=
		this.originalPageX =3D event.pageX;=0A=
		this.originalPageY =3D event.pageY;=0A=
=0A=
		//Adjust the mouse offset relative to the helper if 'cursorAt' is =
supplied=0A=
		(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));=0A=
=0A=
		//Set a containment if given in the options=0A=
		if(o.containment)=0A=
			this._setContainment();=0A=
=0A=
		//Trigger event + callbacks=0A=
		if(this._trigger("start", event) =3D=3D=3D false) {=0A=
			this._clear();=0A=
			return false;=0A=
		}=0A=
=0A=
		//Recache the helper size=0A=
		this._cacheHelperProportions();=0A=
=0A=
		//Prepare the droppable offsets=0A=
		if ($.ui.ddmanager && !o.dropBehaviour)=0A=
			$.ui.ddmanager.prepareOffsets(this, event);=0A=
=0A=
		this.helper.addClass("ui-draggable-dragging");=0A=
		this._mouseDrag(event, true); //Execute the drag once - this causes =
the helper not to be visible before getting its correct position=0A=
		return true;=0A=
	},=0A=
=0A=
	_mouseDrag: function(event, noPropagation) {=0A=
=0A=
		//Compute the helpers position=0A=
		this.position =3D this._generatePosition(event);=0A=
		this.positionAbs =3D this._convertPositionTo("absolute");=0A=
=0A=
		//Call plugins and callbacks and use the resulting position if =
something is returned=0A=
		if (!noPropagation) {=0A=
			var ui =3D this._uiHash();=0A=
			if(this._trigger('drag', event, ui) =3D=3D=3D false) {=0A=
				this._mouseUp({});=0A=
				return false;=0A=
			}=0A=
			this.position =3D ui.position;=0A=
		}=0A=
=0A=
		if(!this.options.axis || this.options.axis !=3D "y") =
this.helper[0].style.left =3D this.position.left+'px';=0A=
		if(!this.options.axis || this.options.axis !=3D "x") =
this.helper[0].style.top =3D this.position.top+'px';=0A=
		if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);=0A=
=0A=
		return false;=0A=
	},=0A=
=0A=
	_mouseStop: function(event) {=0A=
=0A=
		//If we are using droppables, inform the manager about the drop=0A=
		var dropped =3D false;=0A=
		if ($.ui.ddmanager && !this.options.dropBehaviour)=0A=
			dropped =3D $.ui.ddmanager.drop(this, event);=0A=
=0A=
		//if a drop comes from outside (a sortable)=0A=
		if(this.dropped) {=0A=
			dropped =3D this.dropped;=0A=
			this.dropped =3D false;=0A=
		}=0A=
		=0A=
		//if the original element is removed, don't bother to continue if =
helper is set to "original"=0A=
		if((!this.element[0] || !this.element[0].parentNode) && =
this.options.helper =3D=3D "original")=0A=
			return false;=0A=
=0A=
		if((this.options.revert =3D=3D "invalid" && !dropped) || =
(this.options.revert =3D=3D "valid" && dropped) || this.options.revert =
=3D=3D=3D true || ($.isFunction(this.options.revert) && =
this.options.revert.call(this.element, dropped))) {=0A=
			var self =3D this;=0A=
			$(this.helper).animate(this.originalPosition, =
parseInt(this.options.revertDuration, 10), function() {=0A=
				if(self._trigger("stop", event) !=3D=3D false) {=0A=
					self._clear();=0A=
				}=0A=
			});=0A=
		} else {=0A=
			if(this._trigger("stop", event) !=3D=3D false) {=0A=
				this._clear();=0A=
			}=0A=
		}=0A=
=0A=
		return false;=0A=
	},=0A=
	=0A=
	_mouseUp: function(event) {=0A=
		if (this.options.iframeFix =3D=3D=3D true) {=0A=
			$("div.ui-draggable-iframeFix").each(function() { =0A=
				this.parentNode.removeChild(this); =0A=
			}); //Remove frame helpers=0A=
		}=0A=
		=0A=
		return $.ui.mouse.prototype._mouseUp.call(this, event);=0A=
	},=0A=
	=0A=
	cancel: function() {=0A=
		=0A=
		if(this.helper.is(".ui-draggable-dragging")) {=0A=
			this._mouseUp({});=0A=
		} else {=0A=
			this._clear();=0A=
		}=0A=
		=0A=
		return this;=0A=
		=0A=
	},=0A=
=0A=
	_getHandle: function(event) {=0A=
=0A=
		var handle =3D !this.options.handle || !$(this.options.handle, =
this.element).length ? true : false;=0A=
		$(this.options.handle, this.element)=0A=
			.find("*")=0A=
			.andSelf()=0A=
			.each(function() {=0A=
				if(this =3D=3D event.target) handle =3D true;=0A=
			});=0A=
=0A=
		return handle;=0A=
=0A=
	},=0A=
=0A=
	_createHelper: function(event) {=0A=
=0A=
		var o =3D this.options;=0A=
		var helper =3D $.isFunction(o.helper) ? =
$(o.helper.apply(this.element[0], [event])) : (o.helper =3D=3D 'clone' ? =
this.element.clone().removeAttr('id') : this.element);=0A=
=0A=
		if(!helper.parents('body').length)=0A=
			helper.appendTo((o.appendTo =3D=3D 'parent' ? =
this.element[0].parentNode : o.appendTo));=0A=
=0A=
		if(helper[0] !=3D this.element[0] && =
!(/(fixed|absolute)/).test(helper.css("position")))=0A=
			helper.css("position", "absolute");=0A=
=0A=
		return helper;=0A=
=0A=
	},=0A=
=0A=
	_adjustOffsetFromHelper: function(obj) {=0A=
		if (typeof obj =3D=3D 'string') {=0A=
			obj =3D obj.split(' ');=0A=
		}=0A=
		if ($.isArray(obj)) {=0A=
			obj =3D {left: +obj[0], top: +obj[1] || 0};=0A=
		}=0A=
		if ('left' in obj) {=0A=
			this.offset.click.left =3D obj.left + this.margins.left;=0A=
		}=0A=
		if ('right' in obj) {=0A=
			this.offset.click.left =3D this.helperProportions.width - obj.right + =
this.margins.left;=0A=
		}=0A=
		if ('top' in obj) {=0A=
			this.offset.click.top =3D obj.top + this.margins.top;=0A=
		}=0A=
		if ('bottom' in obj) {=0A=
			this.offset.click.top =3D this.helperProportions.height - obj.bottom =
+ this.margins.top;=0A=
		}=0A=
	},=0A=
=0A=
	_getParentOffset: function() {=0A=
=0A=
		//Get the offsetParent and cache its position=0A=
		this.offsetParent =3D this.helper.offsetParent();=0A=
		var po =3D this.offsetParent.offset();=0A=
=0A=
		// This is a special case where we need to modify a offset calculated =
on start, since the following happened:=0A=
		// 1. The position of the helper is absolute, so it's position is =
calculated based on the next positioned parent=0A=
		// 2. The actual offset parent is a child of the scroll parent, and =
the scroll parent isn't the document, which means that=0A=
		//    the scroll is included in the initial calculation of the offset =
of the parent, and never recalculated upon drag=0A=
		if(this.cssPosition =3D=3D 'absolute' && this.scrollParent[0] !=3D =
document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {=0A=
			po.left +=3D this.scrollParent.scrollLeft();=0A=
			po.top +=3D this.scrollParent.scrollTop();=0A=
		}=0A=
=0A=
		if((this.offsetParent[0] =3D=3D document.body) //This needs to be =
actually done for all browsers, since pageX/pageY includes this =
information=0A=
		|| (this.offsetParent[0].tagName && =
this.offsetParent[0].tagName.toLowerCase() =3D=3D 'html' && =
$.browser.msie)) //Ugly IE fix=0A=
			po =3D { top: 0, left: 0 };=0A=
=0A=
		return {=0A=
			top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) =
|| 0),=0A=
			left: po.left + =
(parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)=0A=
		};=0A=
=0A=
	},=0A=
=0A=
	_getRelativeOffset: function() {=0A=
=0A=
		if(this.cssPosition =3D=3D "relative") {=0A=
			var p =3D this.element.position();=0A=
			return {=0A=
				top: p.top - (parseInt(this.helper.css("top"),10) || 0) + =
this.scrollParent.scrollTop(),=0A=
				left: p.left - (parseInt(this.helper.css("left"),10) || 0) + =
this.scrollParent.scrollLeft()=0A=
			};=0A=
		} else {=0A=
			return { top: 0, left: 0 };=0A=
		}=0A=
=0A=
	},=0A=
=0A=
	_cacheMargins: function() {=0A=
		this.margins =3D {=0A=
			left: (parseInt(this.element.css("marginLeft"),10) || 0),=0A=
			top: (parseInt(this.element.css("marginTop"),10) || 0),=0A=
			right: (parseInt(this.element.css("marginRight"),10) || 0),=0A=
			bottom: (parseInt(this.element.css("marginBottom"),10) || 0)=0A=
		};=0A=
	},=0A=
=0A=
	_cacheHelperProportions: function() {=0A=
		this.helperProportions =3D {=0A=
			width: this.helper.outerWidth(),=0A=
			height: this.helper.outerHeight()=0A=
		};=0A=
	},=0A=
=0A=
	_setContainment: function() {=0A=
=0A=
		var o =3D this.options;=0A=
		if(o.containment =3D=3D 'parent') o.containment =3D =
this.helper[0].parentNode;=0A=
		if(o.containment =3D=3D 'document' || o.containment =3D=3D 'window') =
this.containment =3D [=0A=
			(o.containment =3D=3D 'document' ? 0 : $(window).scrollLeft()) - =
this.offset.relative.left - this.offset.parent.left,=0A=
			(o.containment =3D=3D 'document' ? 0 : $(window).scrollTop()) - =
this.offset.relative.top - this.offset.parent.top,=0A=
			(o.containment =3D=3D 'document' ? 0 : $(window).scrollLeft()) + =
$(o.containment =3D=3D 'document' ? document : window).width() - =
this.helperProportions.width - this.margins.left,=0A=
			(o.containment =3D=3D 'document' ? 0 : $(window).scrollTop()) + =
($(o.containment =3D=3D 'document' ? document : window).height() || =
document.body.parentNode.scrollHeight) - this.helperProportions.height - =
this.margins.top=0A=
		];=0A=
=0A=
		if(!(/^(document|window|parent)$/).test(o.containment) && =
o.containment.constructor !=3D Array) {=0A=
		        var c =3D $(o.containment);=0A=
			var ce =3D c[0]; if(!ce) return;=0A=
			var co =3D c.offset();=0A=
			var over =3D ($(ce).css("overflow") !=3D 'hidden');=0A=
=0A=
			this.containment =3D [=0A=
				(parseInt($(ce).css("borderLeftWidth"),10) || 0) + =
(parseInt($(ce).css("paddingLeft"),10) || 0),=0A=
				(parseInt($(ce).css("borderTopWidth"),10) || 0) + =
(parseInt($(ce).css("paddingTop"),10) || 0),=0A=
				(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - =
(parseInt($(ce).css("borderLeftWidth"),10) || 0) - =
(parseInt($(ce).css("paddingRight"),10) || 0) - =
this.helperProportions.width - this.margins.left - this.margins.right,=0A=
				(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) =
- (parseInt($(ce).css("borderTopWidth"),10) || 0) - =
(parseInt($(ce).css("paddingBottom"),10) || 0) - =
this.helperProportions.height - this.margins.top  - this.margins.bottom=0A=
			];=0A=
			this.relative_container =3D c;=0A=
=0A=
		} else if(o.containment.constructor =3D=3D Array) {=0A=
			this.containment =3D o.containment;=0A=
		}=0A=
=0A=
	},=0A=
=0A=
	_convertPositionTo: function(d, pos) {=0A=
=0A=
		if(!pos) pos =3D this.position;=0A=
		var mod =3D d =3D=3D "absolute" ? 1 : -1;=0A=
		var o =3D this.options, scroll =3D this.cssPosition =3D=3D 'absolute' =
&& !(this.scrollParent[0] !=3D document && =
$.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? =
this.offsetParent : this.scrollParent, scrollIsRootNode =3D =
(/(html|body)/i).test(scroll[0].tagName);=0A=
=0A=
		return {=0A=
			top: (=0A=
				pos.top																	// The absolute mouse position=0A=
				+ this.offset.relative.top * mod										// Only for relative =
positioned nodes: Relative offset from element to offset parent=0A=
				+ this.offset.parent.top * mod											// The offsetParent's =
offset without borders (offset + border)=0A=
				- ($.browser.safari && $.browser.version < 526 && this.cssPosition =
=3D=3D 'fixed' ? 0 : ( this.cssPosition =3D=3D 'fixed' ? =
-this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : =
scroll.scrollTop() ) ) * mod)=0A=
			),=0A=
			left: (=0A=
				pos.left																// The absolute mouse position=0A=
				+ this.offset.relative.left * mod										// Only for relative =
positioned nodes: Relative offset from element to offset parent=0A=
				+ this.offset.parent.left * mod											// The offsetParent's =
offset without borders (offset + border)=0A=
				- ($.browser.safari && $.browser.version < 526 && this.cssPosition =
=3D=3D 'fixed' ? 0 : ( this.cssPosition =3D=3D 'fixed' ? =
-this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : =
scroll.scrollLeft() ) * mod)=0A=
			)=0A=
		};=0A=
=0A=
	},=0A=
=0A=
	_generatePosition: function(event) {=0A=
=0A=
		var o =3D this.options, scroll =3D this.cssPosition =3D=3D 'absolute' =
&& !(this.scrollParent[0] !=3D document && =
$.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? =
this.offsetParent : this.scrollParent, scrollIsRootNode =3D =
(/(html|body)/i).test(scroll[0].tagName);=0A=
		var pageX =3D event.pageX;=0A=
		var pageY =3D event.pageY;=0A=
=0A=
		/*=0A=
		 * - Position constraining -=0A=
		 * Constrain the position to a mix of grid, containment.=0A=
		 */=0A=
=0A=
		if(this.originalPosition) { //If we are not dragging yet, we won't =
check for options=0A=
		         var containment;=0A=
		         if(this.containment) {=0A=
				 if (this.relative_container){=0A=
				     var co =3D this.relative_container.offset();=0A=
				     containment =3D [ this.containment[0] + co.left,=0A=
						     this.containment[1] + co.top,=0A=
						     this.containment[2] + co.left,=0A=
						     this.containment[3] + co.top ];=0A=
				 }=0A=
				 else {=0A=
				     containment =3D this.containment;=0A=
				 }=0A=
=0A=
				if(event.pageX - this.offset.click.left < containment[0]) pageX =3D =
containment[0] + this.offset.click.left;=0A=
				if(event.pageY - this.offset.click.top < containment[1]) pageY =3D =
containment[1] + this.offset.click.top;=0A=
				if(event.pageX - this.offset.click.left > containment[2]) pageX =3D =
containment[2] + this.offset.click.left;=0A=
				if(event.pageY - this.offset.click.top > containment[3]) pageY =3D =
containment[3] + this.offset.click.top;=0A=
			}=0A=
=0A=
			if(o.grid) {=0A=
				var top =3D this.originalPageY + Math.round((pageY - =
this.originalPageY) / o.grid[1]) * o.grid[1];=0A=
				pageY =3D containment ? (!(top - this.offset.click.top < =
containment[1] || top - this.offset.click.top > containment[3]) ? top : =
(!(top - this.offset.click.top < containment[1]) ? top - o.grid[1] : top =
+ o.grid[1])) : top;=0A=
=0A=
				var left =3D this.originalPageX + Math.round((pageX - =
this.originalPageX) / o.grid[0]) * o.grid[0];=0A=
				pageX =3D containment ? (!(left - this.offset.click.left < =
containment[0] || left - this.offset.click.left > containment[2]) ? left =
: (!(left - this.offset.click.left < containment[0]) ? left - o.grid[0] =
: left + o.grid[0])) : left;=0A=
			}=0A=
=0A=
		}=0A=
=0A=
		return {=0A=
			top: (=0A=
				pageY																// The absolute mouse position=0A=
				- this.offset.click.top													// Click offset (relative to the =
element)=0A=
				- this.offset.relative.top												// Only for relative =
positioned nodes: Relative offset from element to offset parent=0A=
				- this.offset.parent.top												// The offsetParent's offset =
without borders (offset + border)=0A=
				+ ($.browser.safari && $.browser.version < 526 && this.cssPosition =
=3D=3D 'fixed' ? 0 : ( this.cssPosition =3D=3D 'fixed' ? =
-this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : =
scroll.scrollTop() ) ))=0A=
			),=0A=
			left: (=0A=
				pageX																// The absolute mouse position=0A=
				- this.offset.click.left												// Click offset (relative to the =
element)=0A=
				- this.offset.relative.left												// Only for relative =
positioned nodes: Relative offset from element to offset parent=0A=
				- this.offset.parent.left												// The offsetParent's offset =
without borders (offset + border)=0A=
				+ ($.browser.safari && $.browser.version < 526 && this.cssPosition =
=3D=3D 'fixed' ? 0 : ( this.cssPosition =3D=3D 'fixed' ? =
-this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : =
scroll.scrollLeft() ))=0A=
			)=0A=
		};=0A=
=0A=
	},=0A=
=0A=
	_clear: function() {=0A=
		this.helper.removeClass("ui-draggable-dragging");=0A=
		if(this.helper[0] !=3D this.element[0] && !this.cancelHelperRemoval) =
this.helper.remove();=0A=
		//if($.ui.ddmanager) $.ui.ddmanager.current =3D null;=0A=
		this.helper =3D null;=0A=
		this.cancelHelperRemoval =3D false;=0A=
	},=0A=
=0A=
	// From now on bulk stuff - mainly helpers=0A=
=0A=
	_trigger: function(type, event, ui) {=0A=
		ui =3D ui || this._uiHash();=0A=
		$.ui.plugin.call(this, type, [event, ui]);=0A=
		if(type =3D=3D "drag") this.positionAbs =3D =
this._convertPositionTo("absolute"); //The absolute position has to be =
recalculated after plugins=0A=
		return $.Widget.prototype._trigger.call(this, type, event, ui);=0A=
	},=0A=
=0A=
	plugins: {},=0A=
=0A=
	_uiHash: function(event) {=0A=
		return {=0A=
			helper: this.helper,=0A=
			position: this.position,=0A=
			originalPosition: this.originalPosition,=0A=
			offset: this.positionAbs=0A=
		};=0A=
	}=0A=
=0A=
});=0A=
=0A=
$.extend($.ui.draggable, {=0A=
	version: "1.8.13"=0A=
});=0A=
=0A=
$.ui.plugin.add("draggable", "connectToSortable", {=0A=
	start: function(event, ui) {=0A=
=0A=
		var inst =3D $(this).data("draggable"), o =3D inst.options,=0A=
			uiSortable =3D $.extend({}, ui, { item: inst.element });=0A=
		inst.sortables =3D [];=0A=
		$(o.connectToSortable).each(function() {=0A=
			var sortable =3D $.data(this, 'sortable');=0A=
			if (sortable && !sortable.options.disabled) {=0A=
				inst.sortables.push({=0A=
					instance: sortable,=0A=
					shouldRevert: sortable.options.revert=0A=
				});=0A=
				sortable.refreshPositions();	// Call the sortable's refreshPositions =
at drag start to refresh the containerCache since the sortable container =
cache is used in drag and needs to be up to date (this will ensure it's =
initialised as well as being kept in step with any changes that might =
have happened on the page).=0A=
				sortable._trigger("activate", event, uiSortable);=0A=
			}=0A=
		});=0A=
=0A=
	},=0A=
	stop: function(event, ui) {=0A=
=0A=
		//If we are still over the sortable, we fake the stop event of the =
sortable, but also remove helper=0A=
		var inst =3D $(this).data("draggable"),=0A=
			uiSortable =3D $.extend({}, ui, { item: inst.element });=0A=
=0A=
		$.each(inst.sortables, function() {=0A=
			if(this.instance.isOver) {=0A=
=0A=
				this.instance.isOver =3D 0;=0A=
=0A=
				inst.cancelHelperRemoval =3D true; //Don't remove the helper in the =
draggable instance=0A=
				this.instance.cancelHelperRemoval =3D false; //Remove it in the =
sortable instance (so sortable plugins like revert still work)=0A=
=0A=
				//The sortable revert is supported, and we have to set a temporary =
dropped variable on the draggable to support revert: 'valid/invalid'=0A=
				if(this.shouldRevert) this.instance.options.revert =3D true;=0A=
=0A=
				//Trigger the stop of the sortable=0A=
				this.instance._mouseStop(event);=0A=
=0A=
				this.instance.options.helper =3D this.instance.options._helper;=0A=
=0A=
				//If the helper has been the original item, restore properties in =
the sortable=0A=
				if(inst.options.helper =3D=3D 'original')=0A=
					this.instance.currentItem.css({ top: 'auto', left: 'auto' });=0A=
=0A=
			} else {=0A=
				this.instance.cancelHelperRemoval =3D false; //Remove the helper in =
the sortable instance=0A=
				this.instance._trigger("deactivate", event, uiSortable);=0A=
			}=0A=
=0A=
		});=0A=
=0A=
	},=0A=
	drag: function(event, ui) {=0A=
=0A=
		var inst =3D $(this).data("draggable"), self =3D this;=0A=
=0A=
		var checkPos =3D function(o) {=0A=
			var dyClick =3D this.offset.click.top, dxClick =3D =
this.offset.click.left;=0A=
			var helperTop =3D this.positionAbs.top, helperLeft =3D =
this.positionAbs.left;=0A=
			var itemHeight =3D o.height, itemWidth =3D o.width;=0A=
			var itemTop =3D o.top, itemLeft =3D o.left;=0A=
=0A=
			return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, =
itemTop, itemLeft, itemHeight, itemWidth);=0A=
		};=0A=
=0A=
		$.each(inst.sortables, function(i) {=0A=
			=0A=
			//Copy over some variables to allow calling the sortable's native =
_intersectsWith=0A=
			this.instance.positionAbs =3D inst.positionAbs;=0A=
			this.instance.helperProportions =3D inst.helperProportions;=0A=
			this.instance.offset.click =3D inst.offset.click;=0A=
			=0A=
			if(this.instance._intersectsWith(this.instance.containerCache)) {=0A=
=0A=
				//If it intersects, we use a little isOver variable and set it once, =
so our move-in stuff gets fired only once=0A=
				if(!this.instance.isOver) {=0A=
=0A=
					this.instance.isOver =3D 1;=0A=
					//Now we fake the start of dragging for the sortable instance,=0A=
					//by cloning the list group item, appending it to the sortable and =
using it as inst.currentItem=0A=
					//We can then fire the start event of the sortable with our passed =
browser event, and our own helper (so it doesn't create a new one)=0A=
					this.instance.currentItem =3D =
$(self).clone().removeAttr('id').appendTo(this.instance.element).data("so=
rtable-item", true);=0A=
					this.instance.options._helper =3D this.instance.options.helper; =
//Store helper option to later restore it=0A=
					this.instance.options.helper =3D function() { return ui.helper[0]; =
};=0A=
=0A=
					event.target =3D this.instance.currentItem[0];=0A=
					this.instance._mouseCapture(event, true);=0A=
					this.instance._mouseStart(event, true, true);=0A=
=0A=
					//Because the browser event is way off the new appended portlet, we =
modify a couple of variables to reflect the changes=0A=
					this.instance.offset.click.top =3D inst.offset.click.top;=0A=
					this.instance.offset.click.left =3D inst.offset.click.left;=0A=
					this.instance.offset.parent.left -=3D inst.offset.parent.left - =
this.instance.offset.parent.left;=0A=
					this.instance.offset.parent.top -=3D inst.offset.parent.top - =
this.instance.offset.parent.top;=0A=
=0A=
					inst._trigger("toSortable", event);=0A=
					inst.dropped =3D this.instance.element; //draggable revert needs =
that=0A=
					//hack so receive/update callbacks work (mostly)=0A=
					inst.currentItem =3D inst.element;=0A=
					this.instance.fromOutside =3D inst;=0A=
=0A=
				}=0A=
=0A=
				//Provided we did all the previous steps, we can fire the drag event =
of the sortable on every draggable drag, when it intersects with the =
sortable=0A=
				if(this.instance.currentItem) this.instance._mouseDrag(event);=0A=
=0A=
			} else {=0A=
=0A=
				//If it doesn't intersect with the sortable, and it intersected =
before,=0A=
				//we fake the drag stop of the sortable, but make sure it doesn't =
remove the helper by using cancelHelperRemoval=0A=
				if(this.instance.isOver) {=0A=
=0A=
					this.instance.isOver =3D 0;=0A=
					this.instance.cancelHelperRemoval =3D true;=0A=
					=0A=
					//Prevent reverting on this forced stop=0A=
					this.instance.options.revert =3D false;=0A=
					=0A=
					// The out event needs to be triggered independently=0A=
					this.instance._trigger('out', event, =
this.instance._uiHash(this.instance));=0A=
					=0A=
					this.instance._mouseStop(event, true);=0A=
					this.instance.options.helper =3D this.instance.options._helper;=0A=
=0A=
					//Now we remove our currentItem, the list group clone again, and =
the placeholder, and animate the helper back to it's original size=0A=
					this.instance.currentItem.remove();=0A=
					if(this.instance.placeholder) this.instance.placeholder.remove();=0A=
=0A=
					inst._trigger("fromSortable", event);=0A=
					inst.dropped =3D false; //draggable revert needs that=0A=
				}=0A=
=0A=
			};=0A=
=0A=
		});=0A=
=0A=
	}=0A=
});=0A=
=0A=
$.ui.plugin.add("draggable", "cursor", {=0A=
	start: function(event, ui) {=0A=
		var t =3D $('body'), o =3D $(this).data('draggable').options;=0A=
		if (t.css("cursor")) o._cursor =3D t.css("cursor");=0A=
		t.css("cursor", o.cursor);=0A=
	},=0A=
	stop: function(event, ui) {=0A=
		var o =3D $(this).data('draggable').options;=0A=
		if (o._cursor) $('body').css("cursor", o._cursor);=0A=
	}=0A=
});=0A=
=0A=
$.ui.plugin.add("draggable", "opacity", {=0A=
	start: function(event, ui) {=0A=
		var t =3D $(ui.helper), o =3D $(this).data('draggable').options;=0A=
		if(t.css("opacity")) o._opacity =3D t.css("opacity");=0A=
		t.css('opacity', o.opacity);=0A=
	},=0A=
	stop: function(event, ui) {=0A=
		var o =3D $(this).data('draggable').options;=0A=
		if(o._opacity) $(ui.helper).css('opacity', o._opacity);=0A=
	}=0A=
});=0A=
=0A=
$.ui.plugin.add("draggable", "scroll", {=0A=
	start: function(event, ui) {=0A=
		var i =3D $(this).data("draggable");=0A=
		if(i.scrollParent[0] !=3D document && i.scrollParent[0].tagName !=3D =
'HTML') i.overflowOffset =3D i.scrollParent.offset();=0A=
	},=0A=
	drag: function(event, ui) {=0A=
=0A=
		var i =3D $(this).data("draggable"), o =3D i.options, scrolled =3D =
false;=0A=
=0A=
		if(i.scrollParent[0] !=3D document && i.scrollParent[0].tagName !=3D =
'HTML') {=0A=
=0A=
			if(!o.axis || o.axis !=3D 'x') {=0A=
				if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - =
event.pageY < o.scrollSensitivity)=0A=
					i.scrollParent[0].scrollTop =3D scrolled =3D =
i.scrollParent[0].scrollTop + o.scrollSpeed;=0A=
				else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity)=0A=
					i.scrollParent[0].scrollTop =3D scrolled =3D =
i.scrollParent[0].scrollTop - o.scrollSpeed;=0A=
			}=0A=
=0A=
			if(!o.axis || o.axis !=3D 'y') {=0A=
				if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - =
event.pageX < o.scrollSensitivity)=0A=
					i.scrollParent[0].scrollLeft =3D scrolled =3D =
i.scrollParent[0].scrollLeft + o.scrollSpeed;=0A=
				else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity)=0A=
					i.scrollParent[0].scrollLeft =3D scrolled =3D =
i.scrollParent[0].scrollLeft - o.scrollSpeed;=0A=
			}=0A=
=0A=
		} else {=0A=
=0A=
			if(!o.axis || o.axis !=3D 'x') {=0A=
				if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)=0A=
					scrolled =3D $(document).scrollTop($(document).scrollTop() - =
o.scrollSpeed);=0A=
				else if($(window).height() - (event.pageY - $(document).scrollTop()) =
< o.scrollSensitivity)=0A=
					scrolled =3D $(document).scrollTop($(document).scrollTop() + =
o.scrollSpeed);=0A=
			}=0A=
=0A=
			if(!o.axis || o.axis !=3D 'y') {=0A=
				if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)=0A=
					scrolled =3D $(document).scrollLeft($(document).scrollLeft() - =
o.scrollSpeed);=0A=
				else if($(window).width() - (event.pageX - $(document).scrollLeft()) =
< o.scrollSensitivity)=0A=
					scrolled =3D $(document).scrollLeft($(document).scrollLeft() + =
o.scrollSpeed);=0A=
			}=0A=
=0A=
		}=0A=
=0A=
		if(scrolled !=3D=3D false && $.ui.ddmanager && !o.dropBehaviour)=0A=
			$.ui.ddmanager.prepareOffsets(i, event);=0A=
=0A=
	}=0A=
});=0A=
=0A=
$.ui.plugin.add("draggable", "snap", {=0A=
	start: function(event, ui) {=0A=
=0A=
		var i =3D $(this).data("draggable"), o =3D i.options;=0A=
		i.snapElements =3D [];=0A=
=0A=
		$(o.snap.constructor !=3D String ? ( o.snap.items || =
':data(draggable)' ) : o.snap).each(function() {=0A=
			var $t =3D $(this); var $o =3D $t.offset();=0A=
			if(this !=3D i.element[0]) i.snapElements.push({=0A=
				item: this,=0A=
				width: $t.outerWidth(), height: $t.outerHeight(),=0A=
				top: $o.top, left: $o.left=0A=
			});=0A=
		});=0A=
=0A=
	},=0A=
	drag: function(event, ui) {=0A=
=0A=
		var inst =3D $(this).data("draggable"), o =3D inst.options;=0A=
		var d =3D o.snapTolerance;=0A=
=0A=
		var x1 =3D ui.offset.left, x2 =3D x1 + inst.helperProportions.width,=0A=
			y1 =3D ui.offset.top, y2 =3D y1 + inst.helperProportions.height;=0A=
=0A=
		for (var i =3D inst.snapElements.length - 1; i >=3D 0; i--){=0A=
=0A=
			var l =3D inst.snapElements[i].left, r =3D l + =
inst.snapElements[i].width,=0A=
				t =3D inst.snapElements[i].top, b =3D t + =
inst.snapElements[i].height;=0A=
=0A=
			//Yes, I know, this is insane ;)=0A=
			if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && =
x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 =
&& y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) {=0A=
				if(inst.snapElements[i].snapping) (inst.options.snap.release && =
inst.options.snap.release.call(inst.element, event, =
$.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));=0A=
				inst.snapElements[i].snapping =3D false;=0A=
				continue;=0A=
			}=0A=
=0A=
			if(o.snapMode !=3D 'inner') {=0A=
				var ts =3D Math.abs(t - y2) <=3D d;=0A=
				var bs =3D Math.abs(b - y1) <=3D d;=0A=
				var ls =3D Math.abs(l - x2) <=3D d;=0A=
				var rs =3D Math.abs(r - x1) <=3D d;=0A=
				if(ts) ui.position.top =3D inst._convertPositionTo("relative", { =
top: t - inst.helperProportions.height, left: 0 }).top - =
inst.margins.top;=0A=
				if(bs) ui.position.top =3D inst._convertPositionTo("relative", { =
top: b, left: 0 }).top - inst.margins.top;=0A=
				if(ls) ui.position.left =3D inst._convertPositionTo("relative", { =
top: 0, left: l - inst.helperProportions.width }).left - =
inst.margins.left;=0A=
				if(rs) ui.position.left =3D inst._convertPositionTo("relative", { =
top: 0, left: r }).left - inst.margins.left;=0A=
			}=0A=
=0A=
			var first =3D (ts || bs || ls || rs);=0A=
=0A=
			if(o.snapMode !=3D 'outer') {=0A=
				var ts =3D Math.abs(t - y1) <=3D d;=0A=
				var bs =3D Math.abs(b - y2) <=3D d;=0A=
				var ls =3D Math.abs(l - x1) <=3D d;=0A=
				var rs =3D Math.abs(r - x2) <=3D d;=0A=
				if(ts) ui.position.top =3D inst._convertPositionTo("relative", { =
top: t, left: 0 }).top - inst.margins.top;=0A=
				if(bs) ui.position.top =3D inst._convertPositionTo("relative", { =
top: b - inst.helperProportions.height, left: 0 }).top - =
inst.margins.top;=0A=
				if(ls) ui.position.left =3D inst._convertPositionTo("relative", { =
top: 0, left: l }).left - inst.margins.left;=0A=
				if(rs) ui.position.left =3D inst._convertPositionTo("relative", { =
top: 0, left: r - inst.helperProportions.width }).left - =
inst.margins.left;=0A=
			}=0A=
=0A=
			if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first))=0A=
				(inst.options.snap.snap && inst.options.snap.snap.call(inst.element, =
event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item =
})));=0A=
			inst.snapElements[i].snapping =3D (ts || bs || ls || rs || first);=0A=
=0A=
		};=0A=
=0A=
	}=0A=
});=0A=
=0A=
$.ui.plugin.add("draggable", "stack", {=0A=
	start: function(event, ui) {=0A=
=0A=
		var o =3D $(this).data("draggable").options;=0A=
=0A=
		var group =3D $.makeArray($(o.stack)).sort(function(a,b) {=0A=
			return (parseInt($(a).css("zIndex"),10) || 0) - =
(parseInt($(b).css("zIndex"),10) || 0);=0A=
		});=0A=
		if (!group.length) { return; }=0A=
		=0A=
		var min =3D parseInt(group[0].style.zIndex) || 0;=0A=
		$(group).each(function(i) {=0A=
			this.style.zIndex =3D min + i;=0A=
		});=0A=
=0A=
		this[0].style.zIndex =3D min + group.length;=0A=
=0A=
	}=0A=
});=0A=
=0A=
$.ui.plugin.add("draggable", "zIndex", {=0A=
	start: function(event, ui) {=0A=
		var t =3D $(ui.helper), o =3D $(this).data("draggable").options;=0A=
		if(t.css("zIndex")) o._zIndex =3D t.css("zIndex");=0A=
		t.css('zIndex', o.zIndex);=0A=
	},=0A=
	stop: function(event, ui) {=0A=
		var o =3D $(this).data("draggable").options;=0A=
		if(o._zIndex) $(ui.helper).css('zIndex', o._zIndex);=0A=
	}=0A=
});=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Droppable 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Droppables=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.ui.core.js=0A=
 *	jquery.ui.widget.js=0A=
 *	jquery.ui.mouse.js=0A=
 *	jquery.ui.draggable.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.widget("ui.droppable", {=0A=
	widgetEventPrefix: "drop",=0A=
	options: {=0A=
		accept: '*',=0A=
		activeClass: false,=0A=
		addClasses: true,=0A=
		greedy: false,=0A=
		hoverClass: false,=0A=
		scope: 'default',=0A=
		tolerance: 'intersect'=0A=
	},=0A=
	_create: function() {=0A=
=0A=
		var o =3D this.options, accept =3D o.accept;=0A=
		this.isover =3D 0; this.isout =3D 1;=0A=
=0A=
		this.accept =3D $.isFunction(accept) ? accept : function(d) {=0A=
			return d.is(accept);=0A=
		};=0A=
=0A=
		//Store the droppable's proportions=0A=
		this.proportions =3D { width: this.element[0].offsetWidth, height: =
this.element[0].offsetHeight };=0A=
=0A=
		// Add the reference and positions to the manager=0A=
		$.ui.ddmanager.droppables[o.scope] =3D =
$.ui.ddmanager.droppables[o.scope] || [];=0A=
		$.ui.ddmanager.droppables[o.scope].push(this);=0A=
=0A=
		(o.addClasses && this.element.addClass("ui-droppable"));=0A=
=0A=
	},=0A=
=0A=
	destroy: function() {=0A=
		var drop =3D $.ui.ddmanager.droppables[this.options.scope];=0A=
		for ( var i =3D 0; i < drop.length; i++ )=0A=
			if ( drop[i] =3D=3D this )=0A=
				drop.splice(i, 1);=0A=
=0A=
		this.element=0A=
			.removeClass("ui-droppable ui-droppable-disabled")=0A=
			.removeData("droppable")=0A=
			.unbind(".droppable");=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	_setOption: function(key, value) {=0A=
=0A=
		if(key =3D=3D 'accept') {=0A=
			this.accept =3D $.isFunction(value) ? value : function(d) {=0A=
				return d.is(value);=0A=
			};=0A=
		}=0A=
		$.Widget.prototype._setOption.apply(this, arguments);=0A=
	},=0A=
=0A=
	_activate: function(event) {=0A=
		var draggable =3D $.ui.ddmanager.current;=0A=
		if(this.options.activeClass) =
this.element.addClass(this.options.activeClass);=0A=
		(draggable && this._trigger('activate', event, this.ui(draggable)));=0A=
	},=0A=
=0A=
	_deactivate: function(event) {=0A=
		var draggable =3D $.ui.ddmanager.current;=0A=
		if(this.options.activeClass) =
this.element.removeClass(this.options.activeClass);=0A=
		(draggable && this._trigger('deactivate', event, this.ui(draggable)));=0A=
	},=0A=
=0A=
	_over: function(event) {=0A=
=0A=
		var draggable =3D $.ui.ddmanager.current;=0A=
		if (!draggable || (draggable.currentItem || draggable.element)[0] =
=3D=3D this.element[0]) return; // Bail if draggable and droppable are =
same element=0A=
=0A=
		if (this.accept.call(this.element[0],(draggable.currentItem || =
draggable.element))) {=0A=
			if(this.options.hoverClass) =
this.element.addClass(this.options.hoverClass);=0A=
			this._trigger('over', event, this.ui(draggable));=0A=
		}=0A=
=0A=
	},=0A=
=0A=
	_out: function(event) {=0A=
=0A=
		var draggable =3D $.ui.ddmanager.current;=0A=
		if (!draggable || (draggable.currentItem || draggable.element)[0] =
=3D=3D this.element[0]) return; // Bail if draggable and droppable are =
same element=0A=
=0A=
		if (this.accept.call(this.element[0],(draggable.currentItem || =
draggable.element))) {=0A=
			if(this.options.hoverClass) =
this.element.removeClass(this.options.hoverClass);=0A=
			this._trigger('out', event, this.ui(draggable));=0A=
		}=0A=
=0A=
	},=0A=
=0A=
	_drop: function(event,custom) {=0A=
=0A=
		var draggable =3D custom || $.ui.ddmanager.current;=0A=
		if (!draggable || (draggable.currentItem || draggable.element)[0] =
=3D=3D this.element[0]) return false; // Bail if draggable and droppable =
are same element=0A=
=0A=
		var childrenIntersection =3D false;=0A=
		=
this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(=
function() {=0A=
			var inst =3D $.data(this, 'droppable');=0A=
			if(=0A=
				inst.options.greedy=0A=
				&& !inst.options.disabled=0A=
				&& inst.options.scope =3D=3D draggable.options.scope=0A=
				&& inst.accept.call(inst.element[0], (draggable.currentItem || =
draggable.element))=0A=
				&& $.ui.intersect(draggable, $.extend(inst, { offset: =
inst.element.offset() }), inst.options.tolerance)=0A=
			) { childrenIntersection =3D true; return false; }=0A=
		});=0A=
		if(childrenIntersection) return false;=0A=
=0A=
		if(this.accept.call(this.element[0],(draggable.currentItem || =
draggable.element))) {=0A=
			if(this.options.activeClass) =
this.element.removeClass(this.options.activeClass);=0A=
			if(this.options.hoverClass) =
this.element.removeClass(this.options.hoverClass);=0A=
			this._trigger('drop', event, this.ui(draggable));=0A=
			return this.element;=0A=
		}=0A=
=0A=
		return false;=0A=
=0A=
	},=0A=
=0A=
	ui: function(c) {=0A=
		return {=0A=
			draggable: (c.currentItem || c.element),=0A=
			helper: c.helper,=0A=
			position: c.position,=0A=
			offset: c.positionAbs=0A=
		};=0A=
	}=0A=
=0A=
});=0A=
=0A=
$.extend($.ui.droppable, {=0A=
	version: "1.8.13"=0A=
});=0A=
=0A=
$.ui.intersect =3D function(draggable, droppable, toleranceMode) {=0A=
=0A=
	if (!droppable.offset) return false;=0A=
=0A=
	var x1 =3D (draggable.positionAbs || draggable.position.absolute).left, =
x2 =3D x1 + draggable.helperProportions.width,=0A=
		y1 =3D (draggable.positionAbs || draggable.position.absolute).top, y2 =
=3D y1 + draggable.helperProportions.height;=0A=
	var l =3D droppable.offset.left, r =3D l + droppable.proportions.width,=0A=
		t =3D droppable.offset.top, b =3D t + droppable.proportions.height;=0A=
=0A=
	switch (toleranceMode) {=0A=
		case 'fit':=0A=
			return (l <=3D x1 && x2 <=3D r=0A=
				&& t <=3D y1 && y2 <=3D b);=0A=
			break;=0A=
		case 'intersect':=0A=
			return (l < x1 + (draggable.helperProportions.width / 2) // Right Half=0A=
				&& x2 - (draggable.helperProportions.width / 2) < r // Left Half=0A=
				&& t < y1 + (draggable.helperProportions.height / 2) // Bottom Half=0A=
				&& y2 - (draggable.helperProportions.height / 2) < b ); // Top Half=0A=
			break;=0A=
		case 'pointer':=0A=
			var draggableLeft =3D ((draggable.positionAbs || =
draggable.position.absolute).left + (draggable.clickOffset || =
draggable.offset.click).left),=0A=
				draggableTop =3D ((draggable.positionAbs || =
draggable.position.absolute).top + (draggable.clickOffset || =
draggable.offset.click).top),=0A=
				isOver =3D $.ui.isOver(draggableTop, draggableLeft, t, l, =
droppable.proportions.height, droppable.proportions.width);=0A=
			return isOver;=0A=
			break;=0A=
		case 'touch':=0A=
			return (=0A=
					(y1 >=3D t && y1 <=3D b) ||	// Top edge touching=0A=
					(y2 >=3D t && y2 <=3D b) ||	// Bottom edge touching=0A=
					(y1 < t && y2 > b)		// Surrounded vertically=0A=
				) && (=0A=
					(x1 >=3D l && x1 <=3D r) ||	// Left edge touching=0A=
					(x2 >=3D l && x2 <=3D r) ||	// Right edge touching=0A=
					(x1 < l && x2 > r)		// Surrounded horizontally=0A=
				);=0A=
			break;=0A=
		default:=0A=
			return false;=0A=
			break;=0A=
		}=0A=
=0A=
};=0A=
=0A=
/*=0A=
	This manager tracks offsets of draggables and droppables=0A=
*/=0A=
$.ui.ddmanager =3D {=0A=
	current: null,=0A=
	droppables: { 'default': [] },=0A=
	prepareOffsets: function(t, event) {=0A=
=0A=
		var m =3D $.ui.ddmanager.droppables[t.options.scope] || [];=0A=
		var type =3D event ? event.type : null; // workaround for #2317=0A=
		var list =3D (t.currentItem || =
t.element).find(":data(droppable)").andSelf();=0A=
=0A=
		droppablesLoop: for (var i =3D 0; i < m.length; i++) {=0A=
=0A=
			if(m[i].options.disabled || (t && =
!m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) =
continue;	//No disabled and non-accepted=0A=
			for (var j=3D0; j < list.length; j++) { if(list[j] =3D=3D =
m[i].element[0]) { m[i].proportions.height =3D 0; continue =
droppablesLoop; } }; //Filter out elements in the current dragged item=0A=
			m[i].visible =3D m[i].element.css("display") !=3D "none"; =
if(!m[i].visible) continue; 									//If the element is not visible, =
continue=0A=
=0A=
			if(type =3D=3D "mousedown") m[i]._activate.call(m[i], event); =
//Activate the droppable if used directly from draggables=0A=
=0A=
			m[i].offset =3D m[i].element.offset();=0A=
			m[i].proportions =3D { width: m[i].element[0].offsetWidth, height: =
m[i].element[0].offsetHeight };=0A=
=0A=
		}=0A=
=0A=
	},=0A=
	drop: function(draggable, event) {=0A=
=0A=
		var dropped =3D false;=0A=
		$.each($.ui.ddmanager.droppables[draggable.options.scope] || [], =
function() {=0A=
=0A=
			if(!this.options) return;=0A=
			if (!this.options.disabled && this.visible && =
$.ui.intersect(draggable, this, this.options.tolerance))=0A=
				dropped =3D dropped || this._drop.call(this, event);=0A=
=0A=
			if (!this.options.disabled && this.visible && =
this.accept.call(this.element[0],(draggable.currentItem || =
draggable.element))) {=0A=
				this.isout =3D 1; this.isover =3D 0;=0A=
				this._deactivate.call(this, event);=0A=
			}=0A=
=0A=
		});=0A=
		return dropped;=0A=
=0A=
	},=0A=
	drag: function(draggable, event) {=0A=
=0A=
		//If you have a highly dynamic page, you might try this option. It =
renders positions every time you move the mouse.=0A=
		if(draggable.options.refreshPositions) =
$.ui.ddmanager.prepareOffsets(draggable, event);=0A=
=0A=
		//Run through all droppables and check their positions based on =
specific tolerance options=0A=
		$.each($.ui.ddmanager.droppables[draggable.options.scope] || [], =
function() {=0A=
=0A=
			if(this.options.disabled || this.greedyChild || !this.visible) return;=0A=
			var intersects =3D $.ui.intersect(draggable, this, =
this.options.tolerance);=0A=
=0A=
			var c =3D !intersects && this.isover =3D=3D 1 ? 'isout' : (intersects =
&& this.isover =3D=3D 0 ? 'isover' : null);=0A=
			if(!c) return;=0A=
=0A=
			var parentInstance;=0A=
			if (this.options.greedy) {=0A=
				var parent =3D this.element.parents(':data(droppable):eq(0)');=0A=
				if (parent.length) {=0A=
					parentInstance =3D $.data(parent[0], 'droppable');=0A=
					parentInstance.greedyChild =3D (c =3D=3D 'isover' ? 1 : 0);=0A=
				}=0A=
			}=0A=
=0A=
			// we just moved into a greedy child=0A=
			if (parentInstance && c =3D=3D 'isover') {=0A=
				parentInstance['isover'] =3D 0;=0A=
				parentInstance['isout'] =3D 1;=0A=
				parentInstance._out.call(parentInstance, event);=0A=
			}=0A=
=0A=
			this[c] =3D 1; this[c =3D=3D 'isout' ? 'isover' : 'isout'] =3D 0;=0A=
			this[c =3D=3D "isover" ? "_over" : "_out"].call(this, event);=0A=
=0A=
			// we just moved out of a greedy child=0A=
			if (parentInstance && c =3D=3D 'isout') {=0A=
				parentInstance['isout'] =3D 0;=0A=
				parentInstance['isover'] =3D 1;=0A=
				parentInstance._over.call(parentInstance, event);=0A=
			}=0A=
		});=0A=
=0A=
	}=0A=
};=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Resizable 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Resizables=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.ui.core.js=0A=
 *	jquery.ui.mouse.js=0A=
 *	jquery.ui.widget.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.widget("ui.resizable", $.ui.mouse, {=0A=
	widgetEventPrefix: "resize",=0A=
	options: {=0A=
		alsoResize: false,=0A=
		animate: false,=0A=
		animateDuration: "slow",=0A=
		animateEasing: "swing",=0A=
		aspectRatio: false,=0A=
		autoHide: false,=0A=
		containment: false,=0A=
		ghost: false,=0A=
		grid: false,=0A=
		handles: "e,s,se",=0A=
		helper: false,=0A=
		maxHeight: null,=0A=
		maxWidth: null,=0A=
		minHeight: 10,=0A=
		minWidth: 10,=0A=
		zIndex: 1000=0A=
	},=0A=
	_create: function() {=0A=
=0A=
		var self =3D this, o =3D this.options;=0A=
		this.element.addClass("ui-resizable");=0A=
=0A=
		$.extend(this, {=0A=
			_aspectRatio: !!(o.aspectRatio),=0A=
			aspectRatio: o.aspectRatio,=0A=
			originalElement: this.element,=0A=
			_proportionallyResizeElements: [],=0A=
			_helper: o.helper || o.ghost || o.animate ? o.helper || =
'ui-resizable-helper' : null=0A=
		});=0A=
=0A=
		//Wrap the element if it cannot hold child nodes=0A=
		=
if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|im=
g/i)) {=0A=
=0A=
			//Opera fix for relative positioning=0A=
			if (/relative/.test(this.element.css('position')) && $.browser.opera)=0A=
				this.element.css({ position: 'relative', top: 'auto', left: 'auto' =
});=0A=
=0A=
			//Create a wrapper element and set the wrapper to the new current =
internal element=0A=
			this.element.wrap(=0A=
				$('<div class=3D"ui-wrapper" style=3D"overflow: =
hidden;"></div>').css({=0A=
					position: this.element.css('position'),=0A=
					width: this.element.outerWidth(),=0A=
					height: this.element.outerHeight(),=0A=
					top: this.element.css('top'),=0A=
					left: this.element.css('left')=0A=
				})=0A=
			);=0A=
=0A=
			//Overwrite the original this.element=0A=
			this.element =3D this.element.parent().data(=0A=
				"resizable", this.element.data('resizable')=0A=
			);=0A=
=0A=
			this.elementIsWrapper =3D true;=0A=
=0A=
			//Move margins to the wrapper=0A=
			this.element.css({ marginLeft: =
this.originalElement.css("marginLeft"), marginTop: =
this.originalElement.css("marginTop"), marginRight: =
this.originalElement.css("marginRight"), marginBottom: =
this.originalElement.css("marginBottom") });=0A=
			this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: =
0, marginBottom: 0});=0A=
=0A=
			//Prevent Safari textarea resize=0A=
			this.originalResizeStyle =3D this.originalElement.css('resize');=0A=
			this.originalElement.css('resize', 'none');=0A=
=0A=
			//Push the actual element to our proportionallyResize internal array=0A=
			this._proportionallyResizeElements.push(this.originalElement.css({ =
position: 'static', zoom: 1, display: 'block' }));=0A=
=0A=
			// avoid IE jump (hard set the margin)=0A=
			this.originalElement.css({ margin: this.originalElement.css('margin') =
});=0A=
=0A=
			// fix handlers offset=0A=
			this._proportionallyResize();=0A=
=0A=
		}=0A=
=0A=
		this.handles =3D o.handles || (!$('.ui-resizable-handle', =
this.element).length ? "e,s,se" : { n: '.ui-resizable-n', e: =
'.ui-resizable-e', s: '.ui-resizable-s', w: '.ui-resizable-w', se: =
'.ui-resizable-se', sw: '.ui-resizable-sw', ne: '.ui-resizable-ne', nw: =
'.ui-resizable-nw' });=0A=
		if(this.handles.constructor =3D=3D String) {=0A=
=0A=
			if(this.handles =3D=3D 'all') this.handles =3D 'n,e,s,w,se,sw,ne,nw';=0A=
			var n =3D this.handles.split(","); this.handles =3D {};=0A=
=0A=
			for(var i =3D 0; i < n.length; i++) {=0A=
=0A=
				var handle =3D $.trim(n[i]), hname =3D 'ui-resizable-'+handle;=0A=
				var axis =3D $('<div class=3D"ui-resizable-handle ' + hname + =
'"></div>');=0A=
=0A=
				// increase zIndex of sw, se, ne, nw axis=0A=
				//TODO : this modifies original option=0A=
				if(/sw|se|ne|nw/.test(handle)) axis.css({ zIndex: ++o.zIndex });=0A=
=0A=
				//TODO : What's going on here?=0A=
				if ('se' =3D=3D handle) {=0A=
					axis.addClass('ui-icon ui-icon-gripsmall-diagonal-se');=0A=
				};=0A=
=0A=
				//Insert into internal handles object and append to element=0A=
				this.handles[handle] =3D '.ui-resizable-'+handle;=0A=
				this.element.append(axis);=0A=
			}=0A=
=0A=
		}=0A=
=0A=
		this._renderAxis =3D function(target) {=0A=
=0A=
			target =3D target || this.element;=0A=
=0A=
			for(var i in this.handles) {=0A=
=0A=
				if(this.handles[i].constructor =3D=3D String)=0A=
					this.handles[i] =3D $(this.handles[i], this.element).show();=0A=
=0A=
				//Apply pad to wrapper element, needed to fix axis position =
(textarea, inputs, scrolls)=0A=
				if (this.elementIsWrapper && =
this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) =
{=0A=
=0A=
					var axis =3D $(this.handles[i], this.element), padWrapper =3D 0;=0A=
=0A=
					//Checking the correct pad and border=0A=
					padWrapper =3D /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : =
axis.outerWidth();=0A=
=0A=
					//The padding type i have to apply...=0A=
					var padPos =3D [ 'padding',=0A=
						/ne|nw|n/.test(i) ? 'Top' :=0A=
						/se|sw|s/.test(i) ? 'Bottom' :=0A=
						/^e$/.test(i) ? 'Right' : 'Left' ].join("");=0A=
=0A=
					target.css(padPos, padWrapper);=0A=
=0A=
					this._proportionallyResize();=0A=
=0A=
				}=0A=
=0A=
				//TODO: What's that good for? There's not anything to be executed =
left=0A=
				if(!$(this.handles[i]).length)=0A=
					continue;=0A=
=0A=
			}=0A=
		};=0A=
=0A=
		//TODO: make renderAxis a prototype function=0A=
		this._renderAxis(this.element);=0A=
=0A=
		this._handles =3D $('.ui-resizable-handle', this.element)=0A=
			.disableSelection();=0A=
=0A=
		//Matching axis name=0A=
		this._handles.mouseover(function() {=0A=
			if (!self.resizing) {=0A=
				if (this.className)=0A=
					var axis =3D =
this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);=0A=
				//Axis, default =3D se=0A=
				self.axis =3D axis && axis[1] ? axis[1] : 'se';=0A=
			}=0A=
		});=0A=
=0A=
		//If we want to auto hide the elements=0A=
		if (o.autoHide) {=0A=
			this._handles.hide();=0A=
			$(this.element)=0A=
				.addClass("ui-resizable-autohide")=0A=
				.hover(function() {=0A=
					if (o.disabled) return;=0A=
					$(this).removeClass("ui-resizable-autohide");=0A=
					self._handles.show();=0A=
				},=0A=
				function(){=0A=
					if (o.disabled) return;=0A=
					if (!self.resizing) {=0A=
						$(this).addClass("ui-resizable-autohide");=0A=
						self._handles.hide();=0A=
					}=0A=
				});=0A=
		}=0A=
=0A=
		//Initialize the mouse interaction=0A=
		this._mouseInit();=0A=
=0A=
	},=0A=
=0A=
	destroy: function() {=0A=
=0A=
		this._mouseDestroy();=0A=
=0A=
		var _destroy =3D function(exp) {=0A=
			$(exp).removeClass("ui-resizable ui-resizable-disabled =
ui-resizable-resizing")=0A=
				=
.removeData("resizable").unbind(".resizable").find('.ui-resizable-handle'=
).remove();=0A=
		};=0A=
=0A=
		//TODO: Unwrap at same DOM position=0A=
		if (this.elementIsWrapper) {=0A=
			_destroy(this.element);=0A=
			var wrapper =3D this.element;=0A=
			wrapper.after(=0A=
				this.originalElement.css({=0A=
					position: wrapper.css('position'),=0A=
					width: wrapper.outerWidth(),=0A=
					height: wrapper.outerHeight(),=0A=
					top: wrapper.css('top'),=0A=
					left: wrapper.css('left')=0A=
				})=0A=
			).remove();=0A=
		}=0A=
=0A=
		this.originalElement.css('resize', this.originalResizeStyle);=0A=
		_destroy(this.originalElement);=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	_mouseCapture: function(event) {=0A=
		var handle =3D false;=0A=
		for (var i in this.handles) {=0A=
			if ($(this.handles[i])[0] =3D=3D event.target) {=0A=
				handle =3D true;=0A=
			}=0A=
		}=0A=
=0A=
		return !this.options.disabled && handle;=0A=
	},=0A=
=0A=
	_mouseStart: function(event) {=0A=
=0A=
		var o =3D this.options, iniPos =3D this.element.position(), el =3D =
this.element;=0A=
=0A=
		this.resizing =3D true;=0A=
		this.documentScroll =3D { top: $(document).scrollTop(), left: =
$(document).scrollLeft() };=0A=
=0A=
		// bugfix for http://dev.jquery.com/ticket/1749=0A=
		if (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) {=0A=
			el.css({ position: 'absolute', top: iniPos.top, left: iniPos.left });=0A=
		}=0A=
=0A=
		//Opera fixing relative position=0A=
		if ($.browser.opera && (/relative/).test(el.css('position')))=0A=
			el.css({ position: 'relative', top: 'auto', left: 'auto' });=0A=
=0A=
		this._renderProxy();=0A=
=0A=
		var curleft =3D num(this.helper.css('left')), curtop =3D =
num(this.helper.css('top'));=0A=
=0A=
		if (o.containment) {=0A=
			curleft +=3D $(o.containment).scrollLeft() || 0;=0A=
			curtop +=3D $(o.containment).scrollTop() || 0;=0A=
		}=0A=
=0A=
		//Store needed variables=0A=
		this.offset =3D this.helper.offset();=0A=
		this.position =3D { left: curleft, top: curtop };=0A=
		this.size =3D this._helper ? { width: el.outerWidth(), height: =
el.outerHeight() } : { width: el.width(), height: el.height() };=0A=
		this.originalSize =3D this._helper ? { width: el.outerWidth(), height: =
el.outerHeight() } : { width: el.width(), height: el.height() };=0A=
		this.originalPosition =3D { left: curleft, top: curtop };=0A=
		this.sizeDiff =3D { width: el.outerWidth() - el.width(), height: =
el.outerHeight() - el.height() };=0A=
		this.originalMousePosition =3D { left: event.pageX, top: event.pageY };=0A=
=0A=
		//Aspect Ratio=0A=
		this.aspectRatio =3D (typeof o.aspectRatio =3D=3D 'number') ? =
o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || =
1);=0A=
=0A=
	    var cursor =3D $('.ui-resizable-' + this.axis).css('cursor');=0A=
	    $('body').css('cursor', cursor =3D=3D 'auto' ? this.axis + =
'-resize' : cursor);=0A=
=0A=
		el.addClass("ui-resizable-resizing");=0A=
		this._propagate("start", event);=0A=
		return true;=0A=
	},=0A=
=0A=
	_mouseDrag: function(event) {=0A=
=0A=
		//Increase performance, avoid regex=0A=
		var el =3D this.helper, o =3D this.options, props =3D {},=0A=
			self =3D this, smp =3D this.originalMousePosition, a =3D this.axis;=0A=
=0A=
		var dx =3D (event.pageX-smp.left)||0, dy =3D (event.pageY-smp.top)||0;=0A=
		var trigger =3D this._change[a];=0A=
		if (!trigger) return false;=0A=
=0A=
		// Calculate the attrs that will be change=0A=
		var data =3D trigger.apply(this, [event, dx, dy]), ie6 =3D =
$.browser.msie && $.browser.version < 7, csdif =3D this.sizeDiff;=0A=
=0A=
		if (this._aspectRatio || event.shiftKey)=0A=
			data =3D this._updateRatio(data, event);=0A=
=0A=
		data =3D this._respectSize(data, event);=0A=
=0A=
		// plugins callbacks need to be called first=0A=
		this._propagate("resize", event);=0A=
=0A=
		el.css({=0A=
			top: this.position.top + "px", left: this.position.left + "px",=0A=
			width: this.size.width + "px", height: this.size.height + "px"=0A=
		});=0A=
=0A=
		if (!this._helper && this._proportionallyResizeElements.length)=0A=
			this._proportionallyResize();=0A=
=0A=
		this._updateCache(data);=0A=
=0A=
		// calling the user callback at the end=0A=
		this._trigger('resize', event, this.ui());=0A=
=0A=
		return false;=0A=
	},=0A=
=0A=
	_mouseStop: function(event) {=0A=
=0A=
		this.resizing =3D false;=0A=
		var o =3D this.options, self =3D this;=0A=
=0A=
		if(this._helper) {=0A=
			var pr =3D this._proportionallyResizeElements, ista =3D pr.length && =
(/textarea/i).test(pr[0].nodeName),=0A=
				soffseth =3D ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump =
height */ ? 0 : self.sizeDiff.height,=0A=
				soffsetw =3D ista ? 0 : self.sizeDiff.width;=0A=
=0A=
			var s =3D { width: (self.helper.width()  - soffsetw), height: =
(self.helper.height() - soffseth) },=0A=
				left =3D (parseInt(self.element.css('left'), 10) + =
(self.position.left - self.originalPosition.left)) || null,=0A=
				top =3D (parseInt(self.element.css('top'), 10) + (self.position.top =
- self.originalPosition.top)) || null;=0A=
=0A=
			if (!o.animate)=0A=
				this.element.css($.extend(s, { top: top, left: left }));=0A=
=0A=
			self.helper.height(self.size.height);=0A=
			self.helper.width(self.size.width);=0A=
=0A=
			if (this._helper && !o.animate) this._proportionallyResize();=0A=
		}=0A=
=0A=
		$('body').css('cursor', 'auto');=0A=
=0A=
		this.element.removeClass("ui-resizable-resizing");=0A=
=0A=
		this._propagate("stop", event);=0A=
=0A=
		if (this._helper) this.helper.remove();=0A=
		return false;=0A=
=0A=
	},=0A=
=0A=
	_updateCache: function(data) {=0A=
		var o =3D this.options;=0A=
		this.offset =3D this.helper.offset();=0A=
		if (isNumber(data.left)) this.position.left =3D data.left;=0A=
		if (isNumber(data.top)) this.position.top =3D data.top;=0A=
		if (isNumber(data.height)) this.size.height =3D data.height;=0A=
		if (isNumber(data.width)) this.size.width =3D data.width;=0A=
	},=0A=
=0A=
	_updateRatio: function(data, event) {=0A=
=0A=
		var o =3D this.options, cpos =3D this.position, csize =3D this.size, a =
=3D this.axis;=0A=
=0A=
		if (data.height) data.width =3D (csize.height * this.aspectRatio);=0A=
		else if (data.width) data.height =3D (csize.width / this.aspectRatio);=0A=
=0A=
		if (a =3D=3D 'sw') {=0A=
			data.left =3D cpos.left + (csize.width - data.width);=0A=
			data.top =3D null;=0A=
		}=0A=
		if (a =3D=3D 'nw') {=0A=
			data.top =3D cpos.top + (csize.height - data.height);=0A=
			data.left =3D cpos.left + (csize.width - data.width);=0A=
		}=0A=
=0A=
		return data;=0A=
	},=0A=
=0A=
	_respectSize: function(data, event) {=0A=
=0A=
		var el =3D this.helper, o =3D this.options, pRatio =3D =
this._aspectRatio || event.shiftKey, a =3D this.axis,=0A=
				ismaxw =3D isNumber(data.width) && o.maxWidth && (o.maxWidth < =
data.width), ismaxh =3D isNumber(data.height) && o.maxHeight && =
(o.maxHeight < data.height),=0A=
					isminw =3D isNumber(data.width) && o.minWidth && (o.minWidth > =
data.width), isminh =3D isNumber(data.height) && o.minHeight && =
(o.minHeight > data.height);=0A=
=0A=
		if (isminw) data.width =3D o.minWidth;=0A=
		if (isminh) data.height =3D o.minHeight;=0A=
		if (ismaxw) data.width =3D o.maxWidth;=0A=
		if (ismaxh) data.height =3D o.maxHeight;=0A=
=0A=
		var dw =3D this.originalPosition.left + this.originalSize.width, dh =
=3D this.position.top + this.size.height;=0A=
		var cw =3D /sw|nw|w/.test(a), ch =3D /nw|ne|n/.test(a);=0A=
=0A=
		if (isminw && cw) data.left =3D dw - o.minWidth;=0A=
		if (ismaxw && cw) data.left =3D dw - o.maxWidth;=0A=
		if (isminh && ch)	data.top =3D dh - o.minHeight;=0A=
		if (ismaxh && ch)	data.top =3D dh - o.maxHeight;=0A=
=0A=
		// fixing jump error on top/left - bug #2330=0A=
		var isNotwh =3D !data.width && !data.height;=0A=
		if (isNotwh && !data.left && data.top) data.top =3D null;=0A=
		else if (isNotwh && !data.top && data.left) data.left =3D null;=0A=
=0A=
		return data;=0A=
	},=0A=
=0A=
	_proportionallyResize: function() {=0A=
=0A=
		var o =3D this.options;=0A=
		if (!this._proportionallyResizeElements.length) return;=0A=
		var element =3D this.helper || this.element;=0A=
=0A=
		for (var i=3D0; i < this._proportionallyResizeElements.length; i++) {=0A=
=0A=
			var prel =3D this._proportionallyResizeElements[i];=0A=
=0A=
			if (!this.borderDif) {=0A=
				var b =3D [prel.css('borderTopWidth'), prel.css('borderRightWidth'), =
prel.css('borderBottomWidth'), prel.css('borderLeftWidth')],=0A=
					p =3D [prel.css('paddingTop'), prel.css('paddingRight'), =
prel.css('paddingBottom'), prel.css('paddingLeft')];=0A=
=0A=
				this.borderDif =3D $.map(b, function(v, i) {=0A=
					var border =3D parseInt(v,10)||0, padding =3D parseInt(p[i],10)||0;=0A=
					return border + padding;=0A=
				});=0A=
			}=0A=
=0A=
			if ($.browser.msie && !(!($(element).is(':hidden') || =
$(element).parents(':hidden').length)))=0A=
				continue;=0A=
=0A=
			prel.css({=0A=
				height: (element.height() - this.borderDif[0] - this.borderDif[2]) =
|| 0,=0A=
				width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0=0A=
			});=0A=
=0A=
		};=0A=
=0A=
	},=0A=
=0A=
	_renderProxy: function() {=0A=
=0A=
		var el =3D this.element, o =3D this.options;=0A=
		this.elementOffset =3D el.offset();=0A=
=0A=
		if(this._helper) {=0A=
=0A=
			this.helper =3D this.helper || $('<div =
style=3D"overflow:hidden;"></div>');=0A=
=0A=
			// fix ie6 offset TODO: This seems broken=0A=
			var ie6 =3D $.browser.msie && $.browser.version < 7, ie6offset =3D =
(ie6 ? 1 : 0),=0A=
			pxyoffset =3D ( ie6 ? 2 : -1 );=0A=
=0A=
			this.helper.addClass(this._helper).css({=0A=
				width: this.element.outerWidth() + pxyoffset,=0A=
				height: this.element.outerHeight() + pxyoffset,=0A=
				position: 'absolute',=0A=
				left: this.elementOffset.left - ie6offset +'px',=0A=
				top: this.elementOffset.top - ie6offset +'px',=0A=
				zIndex: ++o.zIndex //TODO: Don't modify option=0A=
			});=0A=
=0A=
			this.helper=0A=
				.appendTo("body")=0A=
				.disableSelection();=0A=
=0A=
		} else {=0A=
			this.helper =3D this.element;=0A=
		}=0A=
=0A=
	},=0A=
=0A=
	_change: {=0A=
		e: function(event, dx, dy) {=0A=
			return { width: this.originalSize.width + dx };=0A=
		},=0A=
		w: function(event, dx, dy) {=0A=
			var o =3D this.options, cs =3D this.originalSize, sp =3D =
this.originalPosition;=0A=
			return { left: sp.left + dx, width: cs.width - dx };=0A=
		},=0A=
		n: function(event, dx, dy) {=0A=
			var o =3D this.options, cs =3D this.originalSize, sp =3D =
this.originalPosition;=0A=
			return { top: sp.top + dy, height: cs.height - dy };=0A=
		},=0A=
		s: function(event, dx, dy) {=0A=
			return { height: this.originalSize.height + dy };=0A=
		},=0A=
		se: function(event, dx, dy) {=0A=
			return $.extend(this._change.s.apply(this, arguments), =
this._change.e.apply(this, [event, dx, dy]));=0A=
		},=0A=
		sw: function(event, dx, dy) {=0A=
			return $.extend(this._change.s.apply(this, arguments), =
this._change.w.apply(this, [event, dx, dy]));=0A=
		},=0A=
		ne: function(event, dx, dy) {=0A=
			return $.extend(this._change.n.apply(this, arguments), =
this._change.e.apply(this, [event, dx, dy]));=0A=
		},=0A=
		nw: function(event, dx, dy) {=0A=
			return $.extend(this._change.n.apply(this, arguments), =
this._change.w.apply(this, [event, dx, dy]));=0A=
		}=0A=
	},=0A=
=0A=
	_propagate: function(n, event) {=0A=
		$.ui.plugin.call(this, n, [event, this.ui()]);=0A=
		(n !=3D "resize" && this._trigger(n, event, this.ui()));=0A=
	},=0A=
=0A=
	plugins: {},=0A=
=0A=
	ui: function() {=0A=
		return {=0A=
			originalElement: this.originalElement,=0A=
			element: this.element,=0A=
			helper: this.helper,=0A=
			position: this.position,=0A=
			size: this.size,=0A=
			originalSize: this.originalSize,=0A=
			originalPosition: this.originalPosition=0A=
		};=0A=
	}=0A=
=0A=
});=0A=
=0A=
$.extend($.ui.resizable, {=0A=
	version: "1.8.13"=0A=
});=0A=
=0A=
/*=0A=
 * Resizable Extensions=0A=
 */=0A=
=0A=
$.ui.plugin.add("resizable", "alsoResize", {=0A=
=0A=
	start: function (event, ui) {=0A=
		var self =3D $(this).data("resizable"), o =3D self.options;=0A=
=0A=
		var _store =3D function (exp) {=0A=
			$(exp).each(function() {=0A=
				var el =3D $(this);=0A=
				el.data("resizable-alsoresize", {=0A=
					width: parseInt(el.width(), 10), height: parseInt(el.height(), 10),=0A=
					left: parseInt(el.css('left'), 10), top: parseInt(el.css('top'), =
10),=0A=
					position: el.css('position') // to reset Opera on stop()=0A=
				});=0A=
			});=0A=
		};=0A=
=0A=
		if (typeof(o.alsoResize) =3D=3D 'object' && !o.alsoResize.parentNode) {=0A=
			if (o.alsoResize.length) { o.alsoResize =3D o.alsoResize[0]; =
_store(o.alsoResize); }=0A=
			else { $.each(o.alsoResize, function (exp) { _store(exp); }); }=0A=
		}else{=0A=
			_store(o.alsoResize);=0A=
		}=0A=
	},=0A=
=0A=
	resize: function (event, ui) {=0A=
		var self =3D $(this).data("resizable"), o =3D self.options, os =3D =
self.originalSize, op =3D self.originalPosition;=0A=
=0A=
		var delta =3D {=0A=
			height: (self.size.height - os.height) || 0, width: (self.size.width =
- os.width) || 0,=0A=
			top: (self.position.top - op.top) || 0, left: (self.position.left - =
op.left) || 0=0A=
		},=0A=
=0A=
		_alsoResize =3D function (exp, c) {=0A=
			$(exp).each(function() {=0A=
				var el =3D $(this), start =3D $(this).data("resizable-alsoresize"), =
style =3D {}, =0A=
					css =3D c && c.length ? c : =
el.parents(ui.originalElement[0]).length ? ['width', 'height'] : =
['width', 'height', 'top', 'left'];=0A=
=0A=
				$.each(css, function (i, prop) {=0A=
					var sum =3D (start[prop]||0) + (delta[prop]||0);=0A=
					if (sum && sum >=3D 0)=0A=
						style[prop] =3D sum || null;=0A=
				});=0A=
=0A=
				// Opera fixing relative position=0A=
				if ($.browser.opera && /relative/.test(el.css('position'))) {=0A=
					self._revertToRelativePosition =3D true;=0A=
					el.css({ position: 'absolute', top: 'auto', left: 'auto' });=0A=
				}=0A=
=0A=
				el.css(style);=0A=
			});=0A=
		};=0A=
=0A=
		if (typeof(o.alsoResize) =3D=3D 'object' && !o.alsoResize.nodeType) {=0A=
			$.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); });=0A=
		}else{=0A=
			_alsoResize(o.alsoResize);=0A=
		}=0A=
	},=0A=
=0A=
	stop: function (event, ui) {=0A=
		var self =3D $(this).data("resizable"), o =3D self.options;=0A=
=0A=
		var _reset =3D function (exp) {=0A=
			$(exp).each(function() {=0A=
				var el =3D $(this);=0A=
				// reset position for Opera - no need to verify it was changed=0A=
				el.css({ position: el.data("resizable-alsoresize").position });=0A=
			});=0A=
		};=0A=
=0A=
		if (self._revertToRelativePosition) {=0A=
			self._revertToRelativePosition =3D false;=0A=
			if (typeof(o.alsoResize) =3D=3D 'object' && !o.alsoResize.nodeType) {=0A=
				$.each(o.alsoResize, function (exp) { _reset(exp); });=0A=
			}else{=0A=
				_reset(o.alsoResize);=0A=
			}=0A=
		}=0A=
=0A=
		$(this).removeData("resizable-alsoresize");=0A=
	}=0A=
});=0A=
=0A=
$.ui.plugin.add("resizable", "animate", {=0A=
=0A=
	stop: function(event, ui) {=0A=
		var self =3D $(this).data("resizable"), o =3D self.options;=0A=
=0A=
		var pr =3D self._proportionallyResizeElements, ista =3D pr.length && =
(/textarea/i).test(pr[0].nodeName),=0A=
					soffseth =3D ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump =
height */ ? 0 : self.sizeDiff.height,=0A=
						soffsetw =3D ista ? 0 : self.sizeDiff.width;=0A=
=0A=
		var style =3D { width: (self.size.width - soffsetw), height: =
(self.size.height - soffseth) },=0A=
					left =3D (parseInt(self.element.css('left'), 10) + =
(self.position.left - self.originalPosition.left)) || null,=0A=
						top =3D (parseInt(self.element.css('top'), 10) + =
(self.position.top - self.originalPosition.top)) || null;=0A=
=0A=
		self.element.animate(=0A=
			$.extend(style, top && left ? { top: top, left: left } : {}), {=0A=
				duration: o.animateDuration,=0A=
				easing: o.animateEasing,=0A=
				step: function() {=0A=
=0A=
					var data =3D {=0A=
						width: parseInt(self.element.css('width'), 10),=0A=
						height: parseInt(self.element.css('height'), 10),=0A=
						top: parseInt(self.element.css('top'), 10),=0A=
						left: parseInt(self.element.css('left'), 10)=0A=
					};=0A=
=0A=
					if (pr && pr.length) $(pr[0]).css({ width: data.width, height: =
data.height });=0A=
=0A=
					// propagating resize, and updating values for each animation step=0A=
					self._updateCache(data);=0A=
					self._propagate("resize", event);=0A=
=0A=
				}=0A=
			}=0A=
		);=0A=
	}=0A=
=0A=
});=0A=
=0A=
$.ui.plugin.add("resizable", "containment", {=0A=
=0A=
	start: function(event, ui) {=0A=
		var self =3D $(this).data("resizable"), o =3D self.options, el =3D =
self.element;=0A=
		var oc =3D o.containment,	ce =3D (oc instanceof $) ? oc.get(0) : =
(/parent/.test(oc)) ? el.parent().get(0) : oc;=0A=
		if (!ce) return;=0A=
=0A=
		self.containerElement =3D $(ce);=0A=
=0A=
		if (/document/.test(oc) || oc =3D=3D document) {=0A=
			self.containerOffset =3D { left: 0, top: 0 };=0A=
			self.containerPosition =3D { left: 0, top: 0 };=0A=
=0A=
			self.parentData =3D {=0A=
				element: $(document), left: 0, top: 0,=0A=
				width: $(document).width(), height: $(document).height() || =
document.body.parentNode.scrollHeight=0A=
			};=0A=
		}=0A=
=0A=
		// i'm a node, so compute top, left, right, bottom=0A=
		else {=0A=
			var element =3D $(ce), p =3D [];=0A=
			$([ "Top", "Right", "Left", "Bottom" ]).each(function(i, name) { p[i] =
=3D num(element.css("padding" + name)); });=0A=
=0A=
			self.containerOffset =3D element.offset();=0A=
			self.containerPosition =3D element.position();=0A=
			self.containerSize =3D { height: (element.innerHeight() - p[3]), =
width: (element.innerWidth() - p[1]) };=0A=
=0A=
			var co =3D self.containerOffset, ch =3D self.containerSize.height,	cw =
=3D self.containerSize.width,=0A=
						width =3D ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw ), =
height =3D ($.ui.hasScroll(ce) ? ce.scrollHeight : ch);=0A=
=0A=
			self.parentData =3D {=0A=
				element: ce, left: co.left, top: co.top, width: width, height: height=0A=
			};=0A=
		}=0A=
	},=0A=
=0A=
	resize: function(event, ui) {=0A=
		var self =3D $(this).data("resizable"), o =3D self.options,=0A=
				ps =3D self.containerSize, co =3D self.containerOffset, cs =3D =
self.size, cp =3D self.position,=0A=
				pRatio =3D self._aspectRatio || event.shiftKey, cop =3D { top:0, =
left:0 }, ce =3D self.containerElement;=0A=
=0A=
		if (ce[0] !=3D document && (/static/).test(ce.css('position'))) cop =
=3D co;=0A=
=0A=
		if (cp.left < (self._helper ? co.left : 0)) {=0A=
			self.size.width =3D self.size.width + (self._helper ? =
(self.position.left - co.left) : (self.position.left - cop.left));=0A=
			if (pRatio) self.size.height =3D self.size.width / o.aspectRatio;=0A=
			self.position.left =3D o.helper ? co.left : 0;=0A=
		}=0A=
=0A=
		if (cp.top < (self._helper ? co.top : 0)) {=0A=
			self.size.height =3D self.size.height + (self._helper ? =
(self.position.top - co.top) : self.position.top);=0A=
			if (pRatio) self.size.width =3D self.size.height * o.aspectRatio;=0A=
			self.position.top =3D self._helper ? co.top : 0;=0A=
		}=0A=
=0A=
		self.offset.left =3D self.parentData.left+self.position.left;=0A=
		self.offset.top =3D self.parentData.top+self.position.top;=0A=
=0A=
		var woset =3D Math.abs( (self._helper ? self.offset.left - cop.left : =
(self.offset.left - cop.left)) + self.sizeDiff.width ),=0A=
					hoset =3D Math.abs( (self._helper ? self.offset.top - cop.top : =
(self.offset.top - co.top)) + self.sizeDiff.height );=0A=
=0A=
		var isParent =3D self.containerElement.get(0) =3D=3D =
self.element.parent().get(0),=0A=
		    isOffsetRelative =3D =
/relative|absolute/.test(self.containerElement.css('position'));=0A=
=0A=
		if(isParent && isOffsetRelative) woset -=3D self.parentData.left;=0A=
=0A=
		if (woset + self.size.width >=3D self.parentData.width) {=0A=
			self.size.width =3D self.parentData.width - woset;=0A=
			if (pRatio) self.size.height =3D self.size.width / self.aspectRatio;=0A=
		}=0A=
=0A=
		if (hoset + self.size.height >=3D self.parentData.height) {=0A=
			self.size.height =3D self.parentData.height - hoset;=0A=
			if (pRatio) self.size.width =3D self.size.height * self.aspectRatio;=0A=
		}=0A=
	},=0A=
=0A=
	stop: function(event, ui){=0A=
		var self =3D $(this).data("resizable"), o =3D self.options, cp =3D =
self.position,=0A=
				co =3D self.containerOffset, cop =3D self.containerPosition, ce =3D =
self.containerElement;=0A=
=0A=
		var helper =3D $(self.helper), ho =3D helper.offset(), w =3D =
helper.outerWidth() - self.sizeDiff.width, h =3D helper.outerHeight() - =
self.sizeDiff.height;=0A=
=0A=
		if (self._helper && !o.animate && =
(/relative/).test(ce.css('position')))=0A=
			$(this).css({ left: ho.left - cop.left - co.left, width: w, height: h =
});=0A=
=0A=
		if (self._helper && !o.animate && (/static/).test(ce.css('position')))=0A=
			$(this).css({ left: ho.left - cop.left - co.left, width: w, height: h =
});=0A=
=0A=
	}=0A=
});=0A=
=0A=
$.ui.plugin.add("resizable", "ghost", {=0A=
=0A=
	start: function(event, ui) {=0A=
=0A=
		var self =3D $(this).data("resizable"), o =3D self.options, cs =3D =
self.size;=0A=
=0A=
		self.ghost =3D self.originalElement.clone();=0A=
		self.ghost=0A=
			.css({ opacity: .25, display: 'block', position: 'relative', height: =
cs.height, width: cs.width, margin: 0, left: 0, top: 0 })=0A=
			.addClass('ui-resizable-ghost')=0A=
			.addClass(typeof o.ghost =3D=3D 'string' ? o.ghost : '');=0A=
=0A=
		self.ghost.appendTo(self.helper);=0A=
=0A=
	},=0A=
=0A=
	resize: function(event, ui){=0A=
		var self =3D $(this).data("resizable"), o =3D self.options;=0A=
		if (self.ghost) self.ghost.css({ position: 'relative', height: =
self.size.height, width: self.size.width });=0A=
	},=0A=
=0A=
	stop: function(event, ui){=0A=
		var self =3D $(this).data("resizable"), o =3D self.options;=0A=
		if (self.ghost && self.helper) =
self.helper.get(0).removeChild(self.ghost.get(0));=0A=
	}=0A=
=0A=
});=0A=
=0A=
$.ui.plugin.add("resizable", "grid", {=0A=
=0A=
	resize: function(event, ui) {=0A=
		var self =3D $(this).data("resizable"), o =3D self.options, cs =3D =
self.size, os =3D self.originalSize, op =3D self.originalPosition, a =3D =
self.axis, ratio =3D o._aspectRatio || event.shiftKey;=0A=
		o.grid =3D typeof o.grid =3D=3D "number" ? [o.grid, o.grid] : o.grid;=0A=
		var ox =3D Math.round((cs.width - os.width) / (o.grid[0]||1)) * =
(o.grid[0]||1), oy =3D Math.round((cs.height - os.height) / =
(o.grid[1]||1)) * (o.grid[1]||1);=0A=
=0A=
		if (/^(se|s|e)$/.test(a)) {=0A=
			self.size.width =3D os.width + ox;=0A=
			self.size.height =3D os.height + oy;=0A=
		}=0A=
		else if (/^(ne)$/.test(a)) {=0A=
			self.size.width =3D os.width + ox;=0A=
			self.size.height =3D os.height + oy;=0A=
			self.position.top =3D op.top - oy;=0A=
		}=0A=
		else if (/^(sw)$/.test(a)) {=0A=
			self.size.width =3D os.width + ox;=0A=
			self.size.height =3D os.height + oy;=0A=
			self.position.left =3D op.left - ox;=0A=
		}=0A=
		else {=0A=
			self.size.width =3D os.width + ox;=0A=
			self.size.height =3D os.height + oy;=0A=
			self.position.top =3D op.top - oy;=0A=
			self.position.left =3D op.left - ox;=0A=
		}=0A=
	}=0A=
=0A=
});=0A=
=0A=
var num =3D function(v) {=0A=
	return parseInt(v, 10) || 0;=0A=
};=0A=
=0A=
var isNumber =3D function(value) {=0A=
	return !isNaN(parseInt(value, 10));=0A=
};=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Selectable 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Selectables=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.ui.core.js=0A=
 *	jquery.ui.mouse.js=0A=
 *	jquery.ui.widget.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.widget("ui.selectable", $.ui.mouse, {=0A=
	options: {=0A=
		appendTo: 'body',=0A=
		autoRefresh: true,=0A=
		distance: 0,=0A=
		filter: '*',=0A=
		tolerance: 'touch'=0A=
	},=0A=
	_create: function() {=0A=
		var self =3D this;=0A=
=0A=
		this.element.addClass("ui-selectable");=0A=
=0A=
		this.dragged =3D false;=0A=
=0A=
		// cache selectee children based on filter=0A=
		var selectees;=0A=
		this.refresh =3D function() {=0A=
			selectees =3D $(self.options.filter, self.element[0]);=0A=
			selectees.each(function() {=0A=
				var $this =3D $(this);=0A=
				var pos =3D $this.offset();=0A=
				$.data(this, "selectable-item", {=0A=
					element: this,=0A=
					$element: $this,=0A=
					left: pos.left,=0A=
					top: pos.top,=0A=
					right: pos.left + $this.outerWidth(),=0A=
					bottom: pos.top + $this.outerHeight(),=0A=
					startselected: false,=0A=
					selected: $this.hasClass('ui-selected'),=0A=
					selecting: $this.hasClass('ui-selecting'),=0A=
					unselecting: $this.hasClass('ui-unselecting')=0A=
				});=0A=
			});=0A=
		};=0A=
		this.refresh();=0A=
=0A=
		this.selectees =3D selectees.addClass("ui-selectee");=0A=
=0A=
		this._mouseInit();=0A=
=0A=
		this.helper =3D $("<div class=3D'ui-selectable-helper'></div>");=0A=
	},=0A=
=0A=
	destroy: function() {=0A=
		this.selectees=0A=
			.removeClass("ui-selectee")=0A=
			.removeData("selectable-item");=0A=
		this.element=0A=
			.removeClass("ui-selectable ui-selectable-disabled")=0A=
			.removeData("selectable")=0A=
			.unbind(".selectable");=0A=
		this._mouseDestroy();=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	_mouseStart: function(event) {=0A=
		var self =3D this;=0A=
=0A=
		this.opos =3D [event.pageX, event.pageY];=0A=
=0A=
		if (this.options.disabled)=0A=
			return;=0A=
=0A=
		var options =3D this.options;=0A=
=0A=
		this.selectees =3D $(options.filter, this.element[0]);=0A=
=0A=
		this._trigger("start", event);=0A=
=0A=
		$(options.appendTo).append(this.helper);=0A=
		// position helper (lasso)=0A=
		this.helper.css({=0A=
			"left": event.clientX,=0A=
			"top": event.clientY,=0A=
			"width": 0,=0A=
			"height": 0=0A=
		});=0A=
=0A=
		if (options.autoRefresh) {=0A=
			this.refresh();=0A=
		}=0A=
=0A=
		this.selectees.filter('.ui-selected').each(function() {=0A=
			var selectee =3D $.data(this, "selectable-item");=0A=
			selectee.startselected =3D true;=0A=
			if (!event.metaKey) {=0A=
				selectee.$element.removeClass('ui-selected');=0A=
				selectee.selected =3D false;=0A=
				selectee.$element.addClass('ui-unselecting');=0A=
				selectee.unselecting =3D true;=0A=
				// selectable UNSELECTING callback=0A=
				self._trigger("unselecting", event, {=0A=
					unselecting: selectee.element=0A=
				});=0A=
			}=0A=
		});=0A=
=0A=
		$(event.target).parents().andSelf().each(function() {=0A=
			var selectee =3D $.data(this, "selectable-item");=0A=
			if (selectee) {=0A=
				var doSelect =3D !event.metaKey || =
!selectee.$element.hasClass('ui-selected');=0A=
				selectee.$element=0A=
					.removeClass(doSelect ? "ui-unselecting" : "ui-selected")=0A=
					.addClass(doSelect ? "ui-selecting" : "ui-unselecting");=0A=
				selectee.unselecting =3D !doSelect;=0A=
				selectee.selecting =3D doSelect;=0A=
				selectee.selected =3D doSelect;=0A=
				// selectable (UN)SELECTING callback=0A=
				if (doSelect) {=0A=
					self._trigger("selecting", event, {=0A=
						selecting: selectee.element=0A=
					});=0A=
				} else {=0A=
					self._trigger("unselecting", event, {=0A=
						unselecting: selectee.element=0A=
					});=0A=
				}=0A=
				return false;=0A=
			}=0A=
		});=0A=
=0A=
	},=0A=
=0A=
	_mouseDrag: function(event) {=0A=
		var self =3D this;=0A=
		this.dragged =3D true;=0A=
=0A=
		if (this.options.disabled)=0A=
			return;=0A=
=0A=
		var options =3D this.options;=0A=
=0A=
		var x1 =3D this.opos[0], y1 =3D this.opos[1], x2 =3D event.pageX, y2 =
=3D event.pageY;=0A=
		if (x1 > x2) { var tmp =3D x2; x2 =3D x1; x1 =3D tmp; }=0A=
		if (y1 > y2) { var tmp =3D y2; y2 =3D y1; y1 =3D tmp; }=0A=
		this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1});=0A=
=0A=
		this.selectees.each(function() {=0A=
			var selectee =3D $.data(this, "selectable-item");=0A=
			//prevent helper from being selected if appendTo: selectable=0A=
			if (!selectee || selectee.element =3D=3D self.element[0])=0A=
				return;=0A=
			var hit =3D false;=0A=
			if (options.tolerance =3D=3D 'touch') {=0A=
				hit =3D ( !(selectee.left > x2 || selectee.right < x1 || =
selectee.top > y2 || selectee.bottom < y1) );=0A=
			} else if (options.tolerance =3D=3D 'fit') {=0A=
				hit =3D (selectee.left > x1 && selectee.right < x2 && selectee.top > =
y1 && selectee.bottom < y2);=0A=
			}=0A=
=0A=
			if (hit) {=0A=
				// SELECT=0A=
				if (selectee.selected) {=0A=
					selectee.$element.removeClass('ui-selected');=0A=
					selectee.selected =3D false;=0A=
				}=0A=
				if (selectee.unselecting) {=0A=
					selectee.$element.removeClass('ui-unselecting');=0A=
					selectee.unselecting =3D false;=0A=
				}=0A=
				if (!selectee.selecting) {=0A=
					selectee.$element.addClass('ui-selecting');=0A=
					selectee.selecting =3D true;=0A=
					// selectable SELECTING callback=0A=
					self._trigger("selecting", event, {=0A=
						selecting: selectee.element=0A=
					});=0A=
				}=0A=
			} else {=0A=
				// UNSELECT=0A=
				if (selectee.selecting) {=0A=
					if (event.metaKey && selectee.startselected) {=0A=
						selectee.$element.removeClass('ui-selecting');=0A=
						selectee.selecting =3D false;=0A=
						selectee.$element.addClass('ui-selected');=0A=
						selectee.selected =3D true;=0A=
					} else {=0A=
						selectee.$element.removeClass('ui-selecting');=0A=
						selectee.selecting =3D false;=0A=
						if (selectee.startselected) {=0A=
							selectee.$element.addClass('ui-unselecting');=0A=
							selectee.unselecting =3D true;=0A=
						}=0A=
						// selectable UNSELECTING callback=0A=
						self._trigger("unselecting", event, {=0A=
							unselecting: selectee.element=0A=
						});=0A=
					}=0A=
				}=0A=
				if (selectee.selected) {=0A=
					if (!event.metaKey && !selectee.startselected) {=0A=
						selectee.$element.removeClass('ui-selected');=0A=
						selectee.selected =3D false;=0A=
=0A=
						selectee.$element.addClass('ui-unselecting');=0A=
						selectee.unselecting =3D true;=0A=
						// selectable UNSELECTING callback=0A=
						self._trigger("unselecting", event, {=0A=
							unselecting: selectee.element=0A=
						});=0A=
					}=0A=
				}=0A=
			}=0A=
		});=0A=
=0A=
		return false;=0A=
	},=0A=
=0A=
	_mouseStop: function(event) {=0A=
		var self =3D this;=0A=
=0A=
		this.dragged =3D false;=0A=
=0A=
		var options =3D this.options;=0A=
=0A=
		$('.ui-unselecting', this.element[0]).each(function() {=0A=
			var selectee =3D $.data(this, "selectable-item");=0A=
			selectee.$element.removeClass('ui-unselecting');=0A=
			selectee.unselecting =3D false;=0A=
			selectee.startselected =3D false;=0A=
			self._trigger("unselected", event, {=0A=
				unselected: selectee.element=0A=
			});=0A=
		});=0A=
		$('.ui-selecting', this.element[0]).each(function() {=0A=
			var selectee =3D $.data(this, "selectable-item");=0A=
			selectee.$element.removeClass('ui-selecting').addClass('ui-selected');=0A=
			selectee.selecting =3D false;=0A=
			selectee.selected =3D true;=0A=
			selectee.startselected =3D true;=0A=
			self._trigger("selected", event, {=0A=
				selected: selectee.element=0A=
			});=0A=
		});=0A=
		this._trigger("stop", event);=0A=
=0A=
		this.helper.remove();=0A=
=0A=
		return false;=0A=
	}=0A=
=0A=
});=0A=
=0A=
$.extend($.ui.selectable, {=0A=
	version: "1.8.13"=0A=
});=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Sortable 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Sortables=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.ui.core.js=0A=
 *	jquery.ui.mouse.js=0A=
 *	jquery.ui.widget.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.widget("ui.sortable", $.ui.mouse, {=0A=
	widgetEventPrefix: "sort",=0A=
	options: {=0A=
		appendTo: "parent",=0A=
		axis: false,=0A=
		connectWith: false,=0A=
		containment: false,=0A=
		cursor: 'auto',=0A=
		cursorAt: false,=0A=
		dropOnEmpty: true,=0A=
		forcePlaceholderSize: false,=0A=
		forceHelperSize: false,=0A=
		grid: false,=0A=
		handle: false,=0A=
		helper: "original",=0A=
		items: '> *',=0A=
		opacity: false,=0A=
		placeholder: false,=0A=
		revert: false,=0A=
		scroll: true,=0A=
		scrollSensitivity: 20,=0A=
		scrollSpeed: 20,=0A=
		scope: "default",=0A=
		tolerance: "intersect",=0A=
		zIndex: 1000=0A=
	},=0A=
	_create: function() {=0A=
=0A=
		var o =3D this.options;=0A=
		this.containerCache =3D {};=0A=
		this.element.addClass("ui-sortable");=0A=
=0A=
		//Get the items=0A=
		this.refresh();=0A=
=0A=
		//Let's determine if the items are being displayed horizontally=0A=
		this.floating =3D this.items.length ? o.axis =3D=3D=3D 'x' || =
(/left|right/).test(this.items[0].item.css('float')) || =
(/inline|table-cell/).test(this.items[0].item.css('display')) : false;=0A=
=0A=
		//Let's determine the parent's offset=0A=
		this.offset =3D this.element.offset();=0A=
=0A=
		//Initialize mouse events for interaction=0A=
		this._mouseInit();=0A=
=0A=
	},=0A=
=0A=
	destroy: function() {=0A=
		this.element=0A=
			.removeClass("ui-sortable ui-sortable-disabled")=0A=
			.removeData("sortable")=0A=
			.unbind(".sortable");=0A=
		this._mouseDestroy();=0A=
=0A=
		for ( var i =3D this.items.length - 1; i >=3D 0; i-- )=0A=
			this.items[i].item.removeData("sortable-item");=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	_setOption: function(key, value){=0A=
		if ( key =3D=3D=3D "disabled" ) {=0A=
			this.options[ key ] =3D value;=0A=
	=0A=
			this.widget()=0A=
				[ value ? "addClass" : "removeClass"]( "ui-sortable-disabled" );=0A=
		} else {=0A=
			// Don't call widget base _setOption for disable as it adds =
ui-state-disabled class=0A=
			$.Widget.prototype._setOption.apply(this, arguments);=0A=
		}=0A=
	},=0A=
=0A=
	_mouseCapture: function(event, overrideHandle) {=0A=
=0A=
		if (this.reverting) {=0A=
			return false;=0A=
		}=0A=
=0A=
		if(this.options.disabled || this.options.type =3D=3D 'static') return =
false;=0A=
=0A=
		//We have to refresh the items data once first=0A=
		this._refreshItems(event);=0A=
=0A=
		//Find out if the clicked node (or one of its parents) is a actual =
item in this.items=0A=
		var currentItem =3D null, self =3D this, nodes =3D =
$(event.target).parents().each(function() {=0A=
			if($.data(this, 'sortable-item') =3D=3D self) {=0A=
				currentItem =3D $(this);=0A=
				return false;=0A=
			}=0A=
		});=0A=
		if($.data(event.target, 'sortable-item') =3D=3D self) currentItem =3D =
$(event.target);=0A=
=0A=
		if(!currentItem) return false;=0A=
		if(this.options.handle && !overrideHandle) {=0A=
			var validHandle =3D false;=0A=
=0A=
			$(this.options.handle, =
currentItem).find("*").andSelf().each(function() { if(this =3D=3D =
event.target) validHandle =3D true; });=0A=
			if(!validHandle) return false;=0A=
		}=0A=
=0A=
		this.currentItem =3D currentItem;=0A=
		this._removeCurrentsFromItems();=0A=
		return true;=0A=
=0A=
	},=0A=
=0A=
	_mouseStart: function(event, overrideHandle, noActivation) {=0A=
=0A=
		var o =3D this.options, self =3D this;=0A=
		this.currentContainer =3D this;=0A=
=0A=
		//We only need to call refreshPositions, because the refreshItems call =
has been moved to mouseCapture=0A=
		this.refreshPositions();=0A=
=0A=
		//Create and append the visible helper=0A=
		this.helper =3D this._createHelper(event);=0A=
=0A=
		//Cache the helper size=0A=
		this._cacheHelperProportions();=0A=
=0A=
		/*=0A=
		 * - Position generation -=0A=
		 * This block generates everything position related - it's the core of =
draggables.=0A=
		 */=0A=
=0A=
		//Cache the margins of the original element=0A=
		this._cacheMargins();=0A=
=0A=
		//Get the next scrolling parent=0A=
		this.scrollParent =3D this.helper.scrollParent();=0A=
=0A=
		//The element's absolute position on the page minus margins=0A=
		this.offset =3D this.currentItem.offset();=0A=
		this.offset =3D {=0A=
			top: this.offset.top - this.margins.top,=0A=
			left: this.offset.left - this.margins.left=0A=
		};=0A=
=0A=
		// Only after we got the offset, we can change the helper's position =
to absolute=0A=
		// TODO: Still need to figure out a way to make relative sorting =
possible=0A=
		this.helper.css("position", "absolute");=0A=
		this.cssPosition =3D this.helper.css("position");=0A=
=0A=
		$.extend(this.offset, {=0A=
			click: { //Where the click happened, relative to the element=0A=
				left: event.pageX - this.offset.left,=0A=
				top: event.pageY - this.offset.top=0A=
			},=0A=
			parent: this._getParentOffset(),=0A=
			relative: this._getRelativeOffset() //This is a relative to absolute =
position minus the actual position calculation - only used for relative =
positioned helper=0A=
		});=0A=
=0A=
		//Generate the original position=0A=
		this.originalPosition =3D this._generatePosition(event);=0A=
		this.originalPageX =3D event.pageX;=0A=
		this.originalPageY =3D event.pageY;=0A=
=0A=
		//Adjust the mouse offset relative to the helper if 'cursorAt' is =
supplied=0A=
		(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));=0A=
=0A=
		//Cache the former DOM position=0A=
		this.domPosition =3D { prev: this.currentItem.prev()[0], parent: =
this.currentItem.parent()[0] };=0A=
=0A=
		//If the helper is not the original, hide the original so it's not =
playing any role during the drag, won't cause anything bad this way=0A=
		if(this.helper[0] !=3D this.currentItem[0]) {=0A=
			this.currentItem.hide();=0A=
		}=0A=
=0A=
		//Create the placeholder=0A=
		this._createPlaceholder();=0A=
=0A=
		//Set a containment if given in the options=0A=
		if(o.containment)=0A=
			this._setContainment();=0A=
=0A=
		if(o.cursor) { // cursor option=0A=
			if ($('body').css("cursor")) this._storedCursor =3D =
$('body').css("cursor");=0A=
			$('body').css("cursor", o.cursor);=0A=
		}=0A=
=0A=
		if(o.opacity) { // opacity option=0A=
			if (this.helper.css("opacity")) this._storedOpacity =3D =
this.helper.css("opacity");=0A=
			this.helper.css("opacity", o.opacity);=0A=
		}=0A=
=0A=
		if(o.zIndex) { // zIndex option=0A=
			if (this.helper.css("zIndex")) this._storedZIndex =3D =
this.helper.css("zIndex");=0A=
			this.helper.css("zIndex", o.zIndex);=0A=
		}=0A=
=0A=
		//Prepare scrolling=0A=
		if(this.scrollParent[0] !=3D document && this.scrollParent[0].tagName =
!=3D 'HTML')=0A=
			this.overflowOffset =3D this.scrollParent.offset();=0A=
=0A=
		//Call callbacks=0A=
		this._trigger("start", event, this._uiHash());=0A=
=0A=
		//Recache the helper size=0A=
		if(!this._preserveHelperProportions)=0A=
			this._cacheHelperProportions();=0A=
=0A=
=0A=
		//Post 'activate' events to possible containers=0A=
		if(!noActivation) {=0A=
			 for (var i =3D this.containers.length - 1; i >=3D 0; i--) { =
this.containers[i]._trigger("activate", event, self._uiHash(this)); }=0A=
		}=0A=
=0A=
		//Prepare possible droppables=0A=
		if($.ui.ddmanager)=0A=
			$.ui.ddmanager.current =3D this;=0A=
=0A=
		if ($.ui.ddmanager && !o.dropBehaviour)=0A=
			$.ui.ddmanager.prepareOffsets(this, event);=0A=
=0A=
		this.dragging =3D true;=0A=
=0A=
		this.helper.addClass("ui-sortable-helper");=0A=
		this._mouseDrag(event); //Execute the drag once - this causes the =
helper not to be visible before getting its correct position=0A=
		return true;=0A=
=0A=
	},=0A=
=0A=
	_mouseDrag: function(event) {=0A=
=0A=
		//Compute the helpers position=0A=
		this.position =3D this._generatePosition(event);=0A=
		this.positionAbs =3D this._convertPositionTo("absolute");=0A=
=0A=
		if (!this.lastPositionAbs) {=0A=
			this.lastPositionAbs =3D this.positionAbs;=0A=
		}=0A=
=0A=
		//Do scrolling=0A=
		if(this.options.scroll) {=0A=
			var o =3D this.options, scrolled =3D false;=0A=
			if(this.scrollParent[0] !=3D document && this.scrollParent[0].tagName =
!=3D 'HTML') {=0A=
=0A=
				if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - =
event.pageY < o.scrollSensitivity)=0A=
					this.scrollParent[0].scrollTop =3D scrolled =3D =
this.scrollParent[0].scrollTop + o.scrollSpeed;=0A=
				else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity)=0A=
					this.scrollParent[0].scrollTop =3D scrolled =3D =
this.scrollParent[0].scrollTop - o.scrollSpeed;=0A=
=0A=
				if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - =
event.pageX < o.scrollSensitivity)=0A=
					this.scrollParent[0].scrollLeft =3D scrolled =3D =
this.scrollParent[0].scrollLeft + o.scrollSpeed;=0A=
				else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity)=0A=
					this.scrollParent[0].scrollLeft =3D scrolled =3D =
this.scrollParent[0].scrollLeft - o.scrollSpeed;=0A=
=0A=
			} else {=0A=
=0A=
				if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)=0A=
					scrolled =3D $(document).scrollTop($(document).scrollTop() - =
o.scrollSpeed);=0A=
				else if($(window).height() - (event.pageY - $(document).scrollTop()) =
< o.scrollSensitivity)=0A=
					scrolled =3D $(document).scrollTop($(document).scrollTop() + =
o.scrollSpeed);=0A=
=0A=
				if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)=0A=
					scrolled =3D $(document).scrollLeft($(document).scrollLeft() - =
o.scrollSpeed);=0A=
				else if($(window).width() - (event.pageX - $(document).scrollLeft()) =
< o.scrollSensitivity)=0A=
					scrolled =3D $(document).scrollLeft($(document).scrollLeft() + =
o.scrollSpeed);=0A=
=0A=
			}=0A=
=0A=
			if(scrolled !=3D=3D false && $.ui.ddmanager && !o.dropBehaviour)=0A=
				$.ui.ddmanager.prepareOffsets(this, event);=0A=
		}=0A=
=0A=
		//Regenerate the absolute position used for position checks=0A=
		this.positionAbs =3D this._convertPositionTo("absolute");=0A=
=0A=
		//Set the helper position=0A=
		if(!this.options.axis || this.options.axis !=3D "y") =
this.helper[0].style.left =3D this.position.left+'px';=0A=
		if(!this.options.axis || this.options.axis !=3D "x") =
this.helper[0].style.top =3D this.position.top+'px';=0A=
=0A=
		//Rearrange=0A=
		for (var i =3D this.items.length - 1; i >=3D 0; i--) {=0A=
=0A=
			//Cache variables and intersection, continue if no intersection=0A=
			var item =3D this.items[i], itemElement =3D item.item[0], =
intersection =3D this._intersectsWithPointer(item);=0A=
			if (!intersection) continue;=0A=
=0A=
			if(itemElement !=3D this.currentItem[0] //cannot intersect with itself=0A=
				&&	this.placeholder[intersection =3D=3D 1 ? "next" : "prev"]()[0] =
!=3D itemElement //no useless actions that have been done before=0A=
				&&	!$.ui.contains(this.placeholder[0], itemElement) //no action if =
the item moved is the parent of the item checked=0A=
				&& (this.options.type =3D=3D 'semi-dynamic' ? =
!$.ui.contains(this.element[0], itemElement) : true)=0A=
				//&& itemElement.parentNode =3D=3D this.placeholder[0].parentNode // =
only rearrange items within the same container=0A=
			) {=0A=
=0A=
				this.direction =3D intersection =3D=3D 1 ? "down" : "up";=0A=
=0A=
				if (this.options.tolerance =3D=3D "pointer" || =
this._intersectsWithSides(item)) {=0A=
					this._rearrange(event, item);=0A=
				} else {=0A=
					break;=0A=
				}=0A=
=0A=
				this._trigger("change", event, this._uiHash());=0A=
				break;=0A=
			}=0A=
		}=0A=
=0A=
		//Post events to containers=0A=
		this._contactContainers(event);=0A=
=0A=
		//Interconnect with droppables=0A=
		if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);=0A=
=0A=
		//Call callbacks=0A=
		this._trigger('sort', event, this._uiHash());=0A=
=0A=
		this.lastPositionAbs =3D this.positionAbs;=0A=
		return false;=0A=
=0A=
	},=0A=
=0A=
	_mouseStop: function(event, noPropagation) {=0A=
=0A=
		if(!event) return;=0A=
=0A=
		//If we are using droppables, inform the manager about the drop=0A=
		if ($.ui.ddmanager && !this.options.dropBehaviour)=0A=
			$.ui.ddmanager.drop(this, event);=0A=
=0A=
		if(this.options.revert) {=0A=
			var self =3D this;=0A=
			var cur =3D self.placeholder.offset();=0A=
=0A=
			self.reverting =3D true;=0A=
=0A=
			$(this.helper).animate({=0A=
				left: cur.left - this.offset.parent.left - self.margins.left + =
(this.offsetParent[0] =3D=3D document.body ? 0 : =
this.offsetParent[0].scrollLeft),=0A=
				top: cur.top - this.offset.parent.top - self.margins.top + =
(this.offsetParent[0] =3D=3D document.body ? 0 : =
this.offsetParent[0].scrollTop)=0A=
			}, parseInt(this.options.revert, 10) || 500, function() {=0A=
				self._clear(event);=0A=
			});=0A=
		} else {=0A=
			this._clear(event, noPropagation);=0A=
		}=0A=
=0A=
		return false;=0A=
=0A=
	},=0A=
=0A=
	cancel: function() {=0A=
=0A=
		var self =3D this;=0A=
=0A=
		if(this.dragging) {=0A=
=0A=
			this._mouseUp({ target: null });=0A=
=0A=
			if(this.options.helper =3D=3D "original")=0A=
				=
this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");=0A=
			else=0A=
				this.currentItem.show();=0A=
=0A=
			//Post deactivating events to containers=0A=
			for (var i =3D this.containers.length - 1; i >=3D 0; i--){=0A=
				this.containers[i]._trigger("deactivate", null, self._uiHash(this));=0A=
				if(this.containers[i].containerCache.over) {=0A=
					this.containers[i]._trigger("out", null, self._uiHash(this));=0A=
					this.containers[i].containerCache.over =3D 0;=0A=
				}=0A=
			}=0A=
=0A=
		}=0A=
=0A=
		if (this.placeholder) {=0A=
			//$(this.placeholder[0]).remove(); would have been the jQuery way - =
unfortunately, it unbinds ALL events from the original node!=0A=
			if(this.placeholder[0].parentNode) =
this.placeholder[0].parentNode.removeChild(this.placeholder[0]);=0A=
			if(this.options.helper !=3D "original" && this.helper && =
this.helper[0].parentNode) this.helper.remove();=0A=
=0A=
			$.extend(this, {=0A=
				helper: null,=0A=
				dragging: false,=0A=
				reverting: false,=0A=
				_noFinalSort: null=0A=
			});=0A=
=0A=
			if(this.domPosition.prev) {=0A=
				$(this.domPosition.prev).after(this.currentItem);=0A=
			} else {=0A=
				$(this.domPosition.parent).prepend(this.currentItem);=0A=
			}=0A=
		}=0A=
=0A=
		return this;=0A=
=0A=
	},=0A=
=0A=
	serialize: function(o) {=0A=
=0A=
		var items =3D this._getItemsAsjQuery(o && o.connected);=0A=
		var str =3D []; o =3D o || {};=0A=
=0A=
		$(items).each(function() {=0A=
			var res =3D ($(o.item || this).attr(o.attribute || 'id') || =
'').match(o.expression || (/(.+)[-=3D_](.+)/));=0A=
			if(res) str.push((o.key || res[1]+'[]')+'=3D'+(o.key && o.expression =
? res[1] : res[2]));=0A=
		});=0A=
=0A=
		if(!str.length && o.key) {=0A=
			str.push(o.key + '=3D');=0A=
		}=0A=
=0A=
		return str.join('&');=0A=
=0A=
	},=0A=
=0A=
	toArray: function(o) {=0A=
=0A=
		var items =3D this._getItemsAsjQuery(o && o.connected);=0A=
		var ret =3D []; o =3D o || {};=0A=
=0A=
		items.each(function() { ret.push($(o.item || this).attr(o.attribute || =
'id') || ''); });=0A=
		return ret;=0A=
=0A=
	},=0A=
=0A=
	/* Be careful with the following core functions */=0A=
	_intersectsWith: function(item) {=0A=
=0A=
		var x1 =3D this.positionAbs.left,=0A=
			x2 =3D x1 + this.helperProportions.width,=0A=
			y1 =3D this.positionAbs.top,=0A=
			y2 =3D y1 + this.helperProportions.height;=0A=
=0A=
		var l =3D item.left,=0A=
			r =3D l + item.width,=0A=
			t =3D item.top,=0A=
			b =3D t + item.height;=0A=
=0A=
		var dyClick =3D this.offset.click.top,=0A=
			dxClick =3D this.offset.click.left;=0A=
=0A=
		var isOverElement =3D (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 =
+ dxClick) > l && (x1 + dxClick) < r;=0A=
=0A=
		if(	   this.options.tolerance =3D=3D "pointer"=0A=
			|| this.options.forcePointerForContainers=0A=
			|| (this.options.tolerance !=3D "pointer" && =
this.helperProportions[this.floating ? 'width' : 'height'] > =
item[this.floating ? 'width' : 'height'])=0A=
		) {=0A=
			return isOverElement;=0A=
		} else {=0A=
=0A=
			return (l < x1 + (this.helperProportions.width / 2) // Right Half=0A=
				&& x2 - (this.helperProportions.width / 2) < r // Left Half=0A=
				&& t < y1 + (this.helperProportions.height / 2) // Bottom Half=0A=
				&& y2 - (this.helperProportions.height / 2) < b ); // Top Half=0A=
=0A=
		}=0A=
	},=0A=
=0A=
	_intersectsWithPointer: function(item) {=0A=
=0A=
		var isOverElementHeight =3D $.ui.isOverAxis(this.positionAbs.top + =
this.offset.click.top, item.top, item.height),=0A=
			isOverElementWidth =3D $.ui.isOverAxis(this.positionAbs.left + =
this.offset.click.left, item.left, item.width),=0A=
			isOverElement =3D isOverElementHeight && isOverElementWidth,=0A=
			verticalDirection =3D this._getDragVerticalDirection(),=0A=
			horizontalDirection =3D this._getDragHorizontalDirection();=0A=
=0A=
		if (!isOverElement)=0A=
			return false;=0A=
=0A=
		return this.floating ?=0A=
			( ((horizontalDirection && horizontalDirection =3D=3D "right") || =
verticalDirection =3D=3D "down") ? 2 : 1 )=0A=
			: ( verticalDirection && (verticalDirection =3D=3D "down" ? 2 : 1) );=0A=
=0A=
	},=0A=
=0A=
	_intersectsWithSides: function(item) {=0A=
=0A=
		var isOverBottomHalf =3D $.ui.isOverAxis(this.positionAbs.top + =
this.offset.click.top, item.top + (item.height/2), item.height),=0A=
			isOverRightHalf =3D $.ui.isOverAxis(this.positionAbs.left + =
this.offset.click.left, item.left + (item.width/2), item.width),=0A=
			verticalDirection =3D this._getDragVerticalDirection(),=0A=
			horizontalDirection =3D this._getDragHorizontalDirection();=0A=
=0A=
		if (this.floating && horizontalDirection) {=0A=
			return ((horizontalDirection =3D=3D "right" && isOverRightHalf) || =
(horizontalDirection =3D=3D "left" && !isOverRightHalf));=0A=
		} else {=0A=
			return verticalDirection && ((verticalDirection =3D=3D "down" && =
isOverBottomHalf) || (verticalDirection =3D=3D "up" && =
!isOverBottomHalf));=0A=
		}=0A=
=0A=
	},=0A=
=0A=
	_getDragVerticalDirection: function() {=0A=
		var delta =3D this.positionAbs.top - this.lastPositionAbs.top;=0A=
		return delta !=3D 0 && (delta > 0 ? "down" : "up");=0A=
	},=0A=
=0A=
	_getDragHorizontalDirection: function() {=0A=
		var delta =3D this.positionAbs.left - this.lastPositionAbs.left;=0A=
		return delta !=3D 0 && (delta > 0 ? "right" : "left");=0A=
	},=0A=
=0A=
	refresh: function(event) {=0A=
		this._refreshItems(event);=0A=
		this.refreshPositions();=0A=
		return this;=0A=
	},=0A=
=0A=
	_connectWith: function() {=0A=
		var options =3D this.options;=0A=
		return options.connectWith.constructor =3D=3D String=0A=
			? [options.connectWith]=0A=
			: options.connectWith;=0A=
	},=0A=
	=0A=
	_getItemsAsjQuery: function(connected) {=0A=
=0A=
		var self =3D this;=0A=
		var items =3D [];=0A=
		var queries =3D [];=0A=
		var connectWith =3D this._connectWith();=0A=
=0A=
		if(connectWith && connected) {=0A=
			for (var i =3D connectWith.length - 1; i >=3D 0; i--){=0A=
				var cur =3D $(connectWith[i]);=0A=
				for (var j =3D cur.length - 1; j >=3D 0; j--){=0A=
					var inst =3D $.data(cur[j], 'sortable');=0A=
					if(inst && inst !=3D this && !inst.options.disabled) {=0A=
						queries.push([$.isFunction(inst.options.items) ? =
inst.options.items.call(inst.element) : $(inst.options.items, =
inst.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'),=
 inst]);=0A=
					}=0A=
				};=0A=
			};=0A=
		}=0A=
=0A=
		queries.push([$.isFunction(this.options.items) ? =
this.options.items.call(this.element, null, { options: this.options, =
item: this.currentItem }) : $(this.options.items, =
this.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'),=
 this]);=0A=
=0A=
		for (var i =3D queries.length - 1; i >=3D 0; i--){=0A=
			queries[i][0].each(function() {=0A=
				items.push(this);=0A=
			});=0A=
		};=0A=
=0A=
		return $(items);=0A=
=0A=
	},=0A=
=0A=
	_removeCurrentsFromItems: function() {=0A=
=0A=
		var list =3D this.currentItem.find(":data(sortable-item)");=0A=
=0A=
		for (var i=3D0; i < this.items.length; i++) {=0A=
=0A=
			for (var j=3D0; j < list.length; j++) {=0A=
				if(list[j] =3D=3D this.items[i].item[0])=0A=
					this.items.splice(i,1);=0A=
			};=0A=
=0A=
		};=0A=
=0A=
	},=0A=
=0A=
	_refreshItems: function(event) {=0A=
=0A=
		this.items =3D [];=0A=
		this.containers =3D [this];=0A=
		var items =3D this.items;=0A=
		var self =3D this;=0A=
		var queries =3D [[$.isFunction(this.options.items) ? =
this.options.items.call(this.element[0], event, { item: this.currentItem =
}) : $(this.options.items, this.element), this]];=0A=
		var connectWith =3D this._connectWith();=0A=
=0A=
		if(connectWith) {=0A=
			for (var i =3D connectWith.length - 1; i >=3D 0; i--){=0A=
				var cur =3D $(connectWith[i]);=0A=
				for (var j =3D cur.length - 1; j >=3D 0; j--){=0A=
					var inst =3D $.data(cur[j], 'sortable');=0A=
					if(inst && inst !=3D this && !inst.options.disabled) {=0A=
						queries.push([$.isFunction(inst.options.items) ? =
inst.options.items.call(inst.element[0], event, { item: this.currentItem =
}) : $(inst.options.items, inst.element), inst]);=0A=
						this.containers.push(inst);=0A=
					}=0A=
				};=0A=
			};=0A=
		}=0A=
=0A=
		for (var i =3D queries.length - 1; i >=3D 0; i--) {=0A=
			var targetData =3D queries[i][1];=0A=
			var _queries =3D queries[i][0];=0A=
=0A=
			for (var j=3D0, queriesLength =3D _queries.length; j < queriesLength; =
j++) {=0A=
				var item =3D $(_queries[j]);=0A=
=0A=
				item.data('sortable-item', targetData); // Data for target checking =
(mouse manager)=0A=
=0A=
				items.push({=0A=
					item: item,=0A=
					instance: targetData,=0A=
					width: 0, height: 0,=0A=
					left: 0, top: 0=0A=
				});=0A=
			};=0A=
		};=0A=
=0A=
	},=0A=
=0A=
	refreshPositions: function(fast) {=0A=
=0A=
		//This has to be redone because due to the item being moved out/into =
the offsetParent, the offsetParent's position will change=0A=
		if(this.offsetParent && this.helper) {=0A=
			this.offset.parent =3D this._getParentOffset();=0A=
		}=0A=
=0A=
		for (var i =3D this.items.length - 1; i >=3D 0; i--){=0A=
			var item =3D this.items[i];=0A=
=0A=
			//We ignore calculating positions of all connected containers when =
we're not over them=0A=
			if(item.instance !=3D this.currentContainer && this.currentContainer =
&& item.item[0] !=3D this.currentItem[0])=0A=
				continue;=0A=
=0A=
			var t =3D this.options.toleranceElement ? =
$(this.options.toleranceElement, item.item) : item.item;=0A=
=0A=
			if (!fast) {=0A=
				item.width =3D t.outerWidth();=0A=
				item.height =3D t.outerHeight();=0A=
			}=0A=
=0A=
			var p =3D t.offset();=0A=
			item.left =3D p.left;=0A=
			item.top =3D p.top;=0A=
		};=0A=
=0A=
		if(this.options.custom && this.options.custom.refreshContainers) {=0A=
			this.options.custom.refreshContainers.call(this);=0A=
		} else {=0A=
			for (var i =3D this.containers.length - 1; i >=3D 0; i--){=0A=
				var p =3D this.containers[i].element.offset();=0A=
				this.containers[i].containerCache.left =3D p.left;=0A=
				this.containers[i].containerCache.top =3D p.top;=0A=
				this.containers[i].containerCache.width	=3D =
this.containers[i].element.outerWidth();=0A=
				this.containers[i].containerCache.height =3D =
this.containers[i].element.outerHeight();=0A=
			};=0A=
		}=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	_createPlaceholder: function(that) {=0A=
=0A=
		var self =3D that || this, o =3D self.options;=0A=
=0A=
		if(!o.placeholder || o.placeholder.constructor =3D=3D String) {=0A=
			var className =3D o.placeholder;=0A=
			o.placeholder =3D {=0A=
				element: function() {=0A=
=0A=
					var el =3D $(document.createElement(self.currentItem[0].nodeName))=0A=
						.addClass(className || self.currentItem[0].className+" =
ui-sortable-placeholder")=0A=
						.removeClass("ui-sortable-helper")[0];=0A=
=0A=
					if(!className)=0A=
						el.style.visibility =3D "hidden";=0A=
=0A=
					return el;=0A=
				},=0A=
				update: function(container, p) {=0A=
=0A=
					// 1. If a className is set as 'placeholder option, we don't force =
sizes - the class is responsible for that=0A=
					// 2. The option 'forcePlaceholderSize can be enabled to force it =
even if a class name is specified=0A=
					if(className && !o.forcePlaceholderSize) return;=0A=
=0A=
					//If the element doesn't have a actual height by itself (without =
styles coming from a stylesheet), it receives the inline height from the =
dragged item=0A=
					if(!p.height()) { p.height(self.currentItem.innerHeight() - =
parseInt(self.currentItem.css('paddingTop')||0, 10) - =
parseInt(self.currentItem.css('paddingBottom')||0, 10)); };=0A=
					if(!p.width()) { p.width(self.currentItem.innerWidth() - =
parseInt(self.currentItem.css('paddingLeft')||0, 10) - =
parseInt(self.currentItem.css('paddingRight')||0, 10)); };=0A=
				}=0A=
			};=0A=
		}=0A=
=0A=
		//Create the placeholder=0A=
		self.placeholder =3D $(o.placeholder.element.call(self.element, =
self.currentItem));=0A=
=0A=
		//Append it after the actual current item=0A=
		self.currentItem.after(self.placeholder);=0A=
=0A=
		//Update the size of the placeholder (TODO: Logic to fuzzy, see line =
316/317)=0A=
		o.placeholder.update(self, self.placeholder);=0A=
=0A=
	},=0A=
=0A=
	_contactContainers: function(event) {=0A=
		=0A=
		// get innermost container that intersects with item =0A=
		var innermostContainer =3D null, innermostIndex =3D null;		=0A=
		=0A=
		=0A=
		for (var i =3D this.containers.length - 1; i >=3D 0; i--){=0A=
=0A=
			// never consider a container that's located within the item itself =0A=
			if($.ui.contains(this.currentItem[0], this.containers[i].element[0]))=0A=
				continue;=0A=
=0A=
			if(this._intersectsWith(this.containers[i].containerCache)) {=0A=
=0A=
				// if we've already found a container and it's more "inner" than =
this, then continue =0A=
				if(innermostContainer && =
$.ui.contains(this.containers[i].element[0], =
innermostContainer.element[0]))=0A=
					continue;=0A=
=0A=
				innermostContainer =3D this.containers[i]; =0A=
				innermostIndex =3D i;=0A=
					=0A=
			} else {=0A=
				// container doesn't intersect. trigger "out" event if necessary =0A=
				if(this.containers[i].containerCache.over) {=0A=
					this.containers[i]._trigger("out", event, this._uiHash(this));=0A=
					this.containers[i].containerCache.over =3D 0;=0A=
				}=0A=
			}=0A=
=0A=
		}=0A=
		=0A=
		// if no intersecting containers found, return =0A=
		if(!innermostContainer) return; =0A=
=0A=
		// move the item into the container if it's not there already=0A=
		if(this.containers.length =3D=3D=3D 1) {=0A=
			this.containers[innermostIndex]._trigger("over", event, =
this._uiHash(this));=0A=
			this.containers[innermostIndex].containerCache.over =3D 1;=0A=
		} else if(this.currentContainer !=3D this.containers[innermostIndex]) =
{ =0A=
=0A=
			//When entering a new container, we will find the item with the least =
distance and append our item near it =0A=
			var dist =3D 10000; var itemWithLeastDistance =3D null; var base =3D =
this.positionAbs[this.containers[innermostIndex].floating ? 'left' : =
'top']; =0A=
			for (var j =3D this.items.length - 1; j >=3D 0; j--) { =0A=
				if(!$.ui.contains(this.containers[innermostIndex].element[0], =
this.items[j].item[0])) continue; =0A=
				var cur =3D this.items[j][this.containers[innermostIndex].floating ? =
'left' : 'top']; =0A=
				if(Math.abs(cur - base) < dist) { =0A=
					dist =3D Math.abs(cur - base); itemWithLeastDistance =3D =
this.items[j]; =0A=
				} =0A=
			} =0A=
=0A=
			if(!itemWithLeastDistance && !this.options.dropOnEmpty) //Check if =
dropOnEmpty is enabled =0A=
				return; =0A=
=0A=
			this.currentContainer =3D this.containers[innermostIndex]; =0A=
			itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, =
null, true) : this._rearrange(event, null, =
this.containers[innermostIndex].element, true); =0A=
			this._trigger("change", event, this._uiHash()); =0A=
			this.containers[innermostIndex]._trigger("change", event, =
this._uiHash(this)); =0A=
=0A=
			//Update the placeholder =0A=
			this.options.placeholder.update(this.currentContainer, =
this.placeholder); =0A=
		=0A=
			this.containers[innermostIndex]._trigger("over", event, =
this._uiHash(this)); =0A=
			this.containers[innermostIndex].containerCache.over =3D 1;=0A=
		} =0A=
	=0A=
		=0A=
	},=0A=
=0A=
	_createHelper: function(event) {=0A=
=0A=
		var o =3D this.options;=0A=
		var helper =3D $.isFunction(o.helper) ? =
$(o.helper.apply(this.element[0], [event, this.currentItem])) : =
(o.helper =3D=3D 'clone' ? this.currentItem.clone() : this.currentItem);=0A=
=0A=
		if(!helper.parents('body').length) //Add the helper to the DOM if that =
didn't happen already=0A=
			$(o.appendTo !=3D 'parent' ? o.appendTo : =
this.currentItem[0].parentNode)[0].appendChild(helper[0]);=0A=
=0A=
		if(helper[0] =3D=3D this.currentItem[0])=0A=
			this._storedCSS =3D { width: this.currentItem[0].style.width, height: =
this.currentItem[0].style.height, position: =
this.currentItem.css("position"), top: this.currentItem.css("top"), =
left: this.currentItem.css("left") };=0A=
=0A=
		if(helper[0].style.width =3D=3D '' || o.forceHelperSize) =
helper.width(this.currentItem.width());=0A=
		if(helper[0].style.height =3D=3D '' || o.forceHelperSize) =
helper.height(this.currentItem.height());=0A=
=0A=
		return helper;=0A=
=0A=
	},=0A=
=0A=
	_adjustOffsetFromHelper: function(obj) {=0A=
		if (typeof obj =3D=3D 'string') {=0A=
			obj =3D obj.split(' ');=0A=
		}=0A=
		if ($.isArray(obj)) {=0A=
			obj =3D {left: +obj[0], top: +obj[1] || 0};=0A=
		}=0A=
		if ('left' in obj) {=0A=
			this.offset.click.left =3D obj.left + this.margins.left;=0A=
		}=0A=
		if ('right' in obj) {=0A=
			this.offset.click.left =3D this.helperProportions.width - obj.right + =
this.margins.left;=0A=
		}=0A=
		if ('top' in obj) {=0A=
			this.offset.click.top =3D obj.top + this.margins.top;=0A=
		}=0A=
		if ('bottom' in obj) {=0A=
			this.offset.click.top =3D this.helperProportions.height - obj.bottom =
+ this.margins.top;=0A=
		}=0A=
	},=0A=
=0A=
	_getParentOffset: function() {=0A=
=0A=
=0A=
		//Get the offsetParent and cache its position=0A=
		this.offsetParent =3D this.helper.offsetParent();=0A=
		var po =3D this.offsetParent.offset();=0A=
=0A=
		// This is a special case where we need to modify a offset calculated =
on start, since the following happened:=0A=
		// 1. The position of the helper is absolute, so it's position is =
calculated based on the next positioned parent=0A=
		// 2. The actual offset parent is a child of the scroll parent, and =
the scroll parent isn't the document, which means that=0A=
		//    the scroll is included in the initial calculation of the offset =
of the parent, and never recalculated upon drag=0A=
		if(this.cssPosition =3D=3D 'absolute' && this.scrollParent[0] !=3D =
document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {=0A=
			po.left +=3D this.scrollParent.scrollLeft();=0A=
			po.top +=3D this.scrollParent.scrollTop();=0A=
		}=0A=
=0A=
		if((this.offsetParent[0] =3D=3D document.body) //This needs to be =
actually done for all browsers, since pageX/pageY includes this =
information=0A=
		|| (this.offsetParent[0].tagName && =
this.offsetParent[0].tagName.toLowerCase() =3D=3D 'html' && =
$.browser.msie)) //Ugly IE fix=0A=
			po =3D { top: 0, left: 0 };=0A=
=0A=
		return {=0A=
			top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) =
|| 0),=0A=
			left: po.left + =
(parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)=0A=
		};=0A=
=0A=
	},=0A=
=0A=
	_getRelativeOffset: function() {=0A=
=0A=
		if(this.cssPosition =3D=3D "relative") {=0A=
			var p =3D this.currentItem.position();=0A=
			return {=0A=
				top: p.top - (parseInt(this.helper.css("top"),10) || 0) + =
this.scrollParent.scrollTop(),=0A=
				left: p.left - (parseInt(this.helper.css("left"),10) || 0) + =
this.scrollParent.scrollLeft()=0A=
			};=0A=
		} else {=0A=
			return { top: 0, left: 0 };=0A=
		}=0A=
=0A=
	},=0A=
=0A=
	_cacheMargins: function() {=0A=
		this.margins =3D {=0A=
			left: (parseInt(this.currentItem.css("marginLeft"),10) || 0),=0A=
			top: (parseInt(this.currentItem.css("marginTop"),10) || 0)=0A=
		};=0A=
	},=0A=
=0A=
	_cacheHelperProportions: function() {=0A=
		this.helperProportions =3D {=0A=
			width: this.helper.outerWidth(),=0A=
			height: this.helper.outerHeight()=0A=
		};=0A=
	},=0A=
=0A=
	_setContainment: function() {=0A=
=0A=
		var o =3D this.options;=0A=
		if(o.containment =3D=3D 'parent') o.containment =3D =
this.helper[0].parentNode;=0A=
		if(o.containment =3D=3D 'document' || o.containment =3D=3D 'window') =
this.containment =3D [=0A=
			0 - this.offset.relative.left - this.offset.parent.left,=0A=
			0 - this.offset.relative.top - this.offset.parent.top,=0A=
			$(o.containment =3D=3D 'document' ? document : window).width() - =
this.helperProportions.width - this.margins.left,=0A=
			($(o.containment =3D=3D 'document' ? document : window).height() || =
document.body.parentNode.scrollHeight) - this.helperProportions.height - =
this.margins.top=0A=
		];=0A=
=0A=
		if(!(/^(document|window|parent)$/).test(o.containment)) {=0A=
			var ce =3D $(o.containment)[0];=0A=
			var co =3D $(o.containment).offset();=0A=
			var over =3D ($(ce).css("overflow") !=3D 'hidden');=0A=
=0A=
			this.containment =3D [=0A=
				co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + =
(parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left,=0A=
				co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + =
(parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top,=0A=
				co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : =
ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - =
(parseInt($(ce).css("paddingRight"),10) || 0) - =
this.helperProportions.width - this.margins.left,=0A=
				co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : =
ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - =
(parseInt($(ce).css("paddingBottom"),10) || 0) - =
this.helperProportions.height - this.margins.top=0A=
			];=0A=
		}=0A=
=0A=
	},=0A=
=0A=
	_convertPositionTo: function(d, pos) {=0A=
=0A=
		if(!pos) pos =3D this.position;=0A=
		var mod =3D d =3D=3D "absolute" ? 1 : -1;=0A=
		var o =3D this.options, scroll =3D this.cssPosition =3D=3D 'absolute' =
&& !(this.scrollParent[0] !=3D document && =
$.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? =
this.offsetParent : this.scrollParent, scrollIsRootNode =3D =
(/(html|body)/i).test(scroll[0].tagName);=0A=
=0A=
		return {=0A=
			top: (=0A=
				pos.top																	// The absolute mouse position=0A=
				+ this.offset.relative.top * mod										// Only for relative =
positioned nodes: Relative offset from element to offset parent=0A=
				+ this.offset.parent.top * mod											// The offsetParent's =
offset without borders (offset + border)=0A=
				- ($.browser.safari && this.cssPosition =3D=3D 'fixed' ? 0 : ( =
this.cssPosition =3D=3D 'fixed' ? -this.scrollParent.scrollTop() : ( =
scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)=0A=
			),=0A=
			left: (=0A=
				pos.left																// The absolute mouse position=0A=
				+ this.offset.relative.left * mod										// Only for relative =
positioned nodes: Relative offset from element to offset parent=0A=
				+ this.offset.parent.left * mod											// The offsetParent's =
offset without borders (offset + border)=0A=
				- ($.browser.safari && this.cssPosition =3D=3D 'fixed' ? 0 : ( =
this.cssPosition =3D=3D 'fixed' ? -this.scrollParent.scrollLeft() : =
scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)=0A=
			)=0A=
		};=0A=
=0A=
	},=0A=
=0A=
	_generatePosition: function(event) {=0A=
=0A=
		var o =3D this.options, scroll =3D this.cssPosition =3D=3D 'absolute' =
&& !(this.scrollParent[0] !=3D document && =
$.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? =
this.offsetParent : this.scrollParent, scrollIsRootNode =3D =
(/(html|body)/i).test(scroll[0].tagName);=0A=
=0A=
		// This is another very weird special case that only happens for =
relative elements:=0A=
		// 1. If the css position is relative=0A=
		// 2. and the scroll parent is the document or similar to the offset =
parent=0A=
		// we have to refresh the relative offset during the scroll so there =
are no jumps=0A=
		if(this.cssPosition =3D=3D 'relative' && !(this.scrollParent[0] !=3D =
document && this.scrollParent[0] !=3D this.offsetParent[0])) {=0A=
			this.offset.relative =3D this._getRelativeOffset();=0A=
		}=0A=
=0A=
		var pageX =3D event.pageX;=0A=
		var pageY =3D event.pageY;=0A=
=0A=
		/*=0A=
		 * - Position constraining -=0A=
		 * Constrain the position to a mix of grid, containment.=0A=
		 */=0A=
=0A=
		if(this.originalPosition) { //If we are not dragging yet, we won't =
check for options=0A=
=0A=
			if(this.containment) {=0A=
				if(event.pageX - this.offset.click.left < this.containment[0]) pageX =
=3D this.containment[0] + this.offset.click.left;=0A=
				if(event.pageY - this.offset.click.top < this.containment[1]) pageY =
=3D this.containment[1] + this.offset.click.top;=0A=
				if(event.pageX - this.offset.click.left > this.containment[2]) pageX =
=3D this.containment[2] + this.offset.click.left;=0A=
				if(event.pageY - this.offset.click.top > this.containment[3]) pageY =
=3D this.containment[3] + this.offset.click.top;=0A=
			}=0A=
=0A=
			if(o.grid) {=0A=
				var top =3D this.originalPageY + Math.round((pageY - =
this.originalPageY) / o.grid[1]) * o.grid[1];=0A=
				pageY =3D this.containment ? (!(top - this.offset.click.top < =
this.containment[1] || top - this.offset.click.top > =
this.containment[3]) ? top : (!(top - this.offset.click.top < =
this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;=0A=
=0A=
				var left =3D this.originalPageX + Math.round((pageX - =
this.originalPageX) / o.grid[0]) * o.grid[0];=0A=
				pageX =3D this.containment ? (!(left - this.offset.click.left < =
this.containment[0] || left - this.offset.click.left > =
this.containment[2]) ? left : (!(left - this.offset.click.left < =
this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;=0A=
			}=0A=
=0A=
		}=0A=
=0A=
		return {=0A=
			top: (=0A=
				pageY																// The absolute mouse position=0A=
				- this.offset.click.top													// Click offset (relative to the =
element)=0A=
				- this.offset.relative.top												// Only for relative =
positioned nodes: Relative offset from element to offset parent=0A=
				- this.offset.parent.top												// The offsetParent's offset =
without borders (offset + border)=0A=
				+ ($.browser.safari && this.cssPosition =3D=3D 'fixed' ? 0 : ( =
this.cssPosition =3D=3D 'fixed' ? -this.scrollParent.scrollTop() : ( =
scrollIsRootNode ? 0 : scroll.scrollTop() ) ))=0A=
			),=0A=
			left: (=0A=
				pageX																// The absolute mouse position=0A=
				- this.offset.click.left												// Click offset (relative to the =
element)=0A=
				- this.offset.relative.left												// Only for relative =
positioned nodes: Relative offset from element to offset parent=0A=
				- this.offset.parent.left												// The offsetParent's offset =
without borders (offset + border)=0A=
				+ ($.browser.safari && this.cssPosition =3D=3D 'fixed' ? 0 : ( =
this.cssPosition =3D=3D 'fixed' ? -this.scrollParent.scrollLeft() : =
scrollIsRootNode ? 0 : scroll.scrollLeft() ))=0A=
			)=0A=
		};=0A=
=0A=
	},=0A=
=0A=
	_rearrange: function(event, i, a, hardRefresh) {=0A=
=0A=
		a ? a[0].appendChild(this.placeholder[0]) : =
i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction =
=3D=3D 'down' ? i.item[0] : i.item[0].nextSibling));=0A=
=0A=
		//Various things done here to improve the performance:=0A=
		// 1. we create a setTimeout, that calls refreshPositions=0A=
		// 2. on the instance, we have a counter variable, that get's higher =
after every append=0A=
		// 3. on the local scope, we copy the counter variable, and check in =
the timeout, if it's still the same=0A=
		// 4. this lets only the last addition to the timeout stack through=0A=
		this.counter =3D this.counter ? ++this.counter : 1;=0A=
		var self =3D this, counter =3D this.counter;=0A=
=0A=
		window.setTimeout(function() {=0A=
			if(counter =3D=3D self.counter) self.refreshPositions(!hardRefresh); =
//Precompute after each DOM insertion, NOT on mousemove=0A=
		},0);=0A=
=0A=
	},=0A=
=0A=
	_clear: function(event, noPropagation) {=0A=
=0A=
		this.reverting =3D false;=0A=
		// We delay all events that have to be triggered to after the point =
where the placeholder has been removed and=0A=
		// everything else normalized again=0A=
		var delayedTriggers =3D [], self =3D this;=0A=
=0A=
		// We first have to update the dom position of the actual currentItem=0A=
		// Note: don't do it if the current item is already removed (by a =
user), or it gets reappended (see #4088)=0A=
		if(!this._noFinalSort && this.currentItem[0].parentNode) =
this.placeholder.before(this.currentItem);=0A=
		this._noFinalSort =3D null;=0A=
=0A=
		if(this.helper[0] =3D=3D this.currentItem[0]) {=0A=
			for(var i in this._storedCSS) {=0A=
				if(this._storedCSS[i] =3D=3D 'auto' || this._storedCSS[i] =3D=3D =
'static') this._storedCSS[i] =3D '';=0A=
			}=0A=
			=
this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");=0A=
		} else {=0A=
			this.currentItem.show();=0A=
		}=0A=
=0A=
		if(this.fromOutside && !noPropagation) =
delayedTriggers.push(function(event) { this._trigger("receive", event, =
this._uiHash(this.fromOutside)); });=0A=
		if((this.fromOutside || this.domPosition.prev !=3D =
this.currentItem.prev().not(".ui-sortable-helper")[0] || =
this.domPosition.parent !=3D this.currentItem.parent()[0]) && =
!noPropagation) delayedTriggers.push(function(event) { =
this._trigger("update", event, this._uiHash()); }); //Trigger update =
callback if the DOM position has changed=0A=
		if(!$.ui.contains(this.element[0], this.currentItem[0])) { //Node was =
moved out of the current element=0A=
			if(!noPropagation) delayedTriggers.push(function(event) { =
this._trigger("remove", event, this._uiHash()); });=0A=
			for (var i =3D this.containers.length - 1; i >=3D 0; i--){=0A=
				if($.ui.contains(this.containers[i].element[0], this.currentItem[0]) =
&& !noPropagation) {=0A=
					delayedTriggers.push((function(c) { return function(event) { =
c._trigger("receive", event, this._uiHash(this)); };  }).call(this, =
this.containers[i]));=0A=
					delayedTriggers.push((function(c) { return function(event) { =
c._trigger("update", event, this._uiHash(this));  }; }).call(this, =
this.containers[i]));=0A=
				}=0A=
			};=0A=
		};=0A=
=0A=
		//Post events to containers=0A=
		for (var i =3D this.containers.length - 1; i >=3D 0; i--){=0A=
			if(!noPropagation) delayedTriggers.push((function(c) { return =
function(event) { c._trigger("deactivate", event, this._uiHash(this)); =
};  }).call(this, this.containers[i]));=0A=
			if(this.containers[i].containerCache.over) {=0A=
				delayedTriggers.push((function(c) { return function(event) { =
c._trigger("out", event, this._uiHash(this)); };  }).call(this, =
this.containers[i]));=0A=
				this.containers[i].containerCache.over =3D 0;=0A=
			}=0A=
		}=0A=
=0A=
		//Do what was originally in plugins=0A=
		if(this._storedCursor) $('body').css("cursor", this._storedCursor); =
//Reset cursor=0A=
		if(this._storedOpacity) this.helper.css("opacity", =
this._storedOpacity); //Reset opacity=0A=
		if(this._storedZIndex) this.helper.css("zIndex", this._storedZIndex =
=3D=3D 'auto' ? '' : this._storedZIndex); //Reset z-index=0A=
=0A=
		this.dragging =3D false;=0A=
		if(this.cancelHelperRemoval) {=0A=
			if(!noPropagation) {=0A=
				this._trigger("beforeStop", event, this._uiHash());=0A=
				for (var i=3D0; i < delayedTriggers.length; i++) { =
delayedTriggers[i].call(this, event); }; //Trigger all delayed events=0A=
				this._trigger("stop", event, this._uiHash());=0A=
			}=0A=
			return false;=0A=
		}=0A=
=0A=
		if(!noPropagation) this._trigger("beforeStop", event, this._uiHash());=0A=
=0A=
		//$(this.placeholder[0]).remove(); would have been the jQuery way - =
unfortunately, it unbinds ALL events from the original node!=0A=
		this.placeholder[0].parentNode.removeChild(this.placeholder[0]);=0A=
=0A=
		if(this.helper[0] !=3D this.currentItem[0]) this.helper.remove(); =
this.helper =3D null;=0A=
=0A=
		if(!noPropagation) {=0A=
			for (var i=3D0; i < delayedTriggers.length; i++) { =
delayedTriggers[i].call(this, event); }; //Trigger all delayed events=0A=
			this._trigger("stop", event, this._uiHash());=0A=
		}=0A=
=0A=
		this.fromOutside =3D false;=0A=
		return true;=0A=
=0A=
	},=0A=
=0A=
	_trigger: function() {=0A=
		if ($.Widget.prototype._trigger.apply(this, arguments) =3D=3D=3D =
false) {=0A=
			this.cancel();=0A=
		}=0A=
	},=0A=
=0A=
	_uiHash: function(inst) {=0A=
		var self =3D inst || this;=0A=
		return {=0A=
			helper: self.helper,=0A=
			placeholder: self.placeholder || $([]),=0A=
			position: self.position,=0A=
			originalPosition: self.originalPosition,=0A=
			offset: self.positionAbs,=0A=
			item: self.currentItem,=0A=
			sender: inst ? inst.element : null=0A=
		};=0A=
	}=0A=
=0A=
});=0A=
=0A=
$.extend($.ui.sortable, {=0A=
	version: "1.8.13"=0A=
});=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Accordion 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Accordion=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.ui.core.js=0A=
 *	jquery.ui.widget.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.widget( "ui.accordion", {=0A=
	options: {=0A=
		active: 0,=0A=
		animated: "slide",=0A=
		autoHeight: true,=0A=
		clearStyle: false,=0A=
		collapsible: false,=0A=
		event: "click",=0A=
		fillSpace: false,=0A=
		header: "> li > :first-child,> :not(li):even",=0A=
		icons: {=0A=
			header: "ui-icon-triangle-1-e",=0A=
			headerSelected: "ui-icon-triangle-1-s"=0A=
		},=0A=
		navigation: false,=0A=
		navigationFilter: function() {=0A=
			return this.href.toLowerCase() =3D=3D=3D location.href.toLowerCase();=0A=
		}=0A=
	},=0A=
=0A=
	_create: function() {=0A=
		var self =3D this,=0A=
			options =3D self.options;=0A=
=0A=
		self.running =3D 0;=0A=
=0A=
		self.element=0A=
			.addClass( "ui-accordion ui-widget ui-helper-reset" )=0A=
			// in lack of child-selectors in CSS=0A=
			// we need to mark top-LIs in a UL-accordion for some IE-fix=0A=
			.children( "li" )=0A=
				.addClass( "ui-accordion-li-fix" );=0A=
=0A=
		self.headers =3D self.element.find( options.header )=0A=
			.addClass( "ui-accordion-header ui-helper-reset ui-state-default =
ui-corner-all" )=0A=
			.bind( "mouseenter.accordion", function() {=0A=
				if ( options.disabled ) {=0A=
					return;=0A=
				}=0A=
				$( this ).addClass( "ui-state-hover" );=0A=
			})=0A=
			.bind( "mouseleave.accordion", function() {=0A=
				if ( options.disabled ) {=0A=
					return;=0A=
				}=0A=
				$( this ).removeClass( "ui-state-hover" );=0A=
			})=0A=
			.bind( "focus.accordion", function() {=0A=
				if ( options.disabled ) {=0A=
					return;=0A=
				}=0A=
				$( this ).addClass( "ui-state-focus" );=0A=
			})=0A=
			.bind( "blur.accordion", function() {=0A=
				if ( options.disabled ) {=0A=
					return;=0A=
				}=0A=
				$( this ).removeClass( "ui-state-focus" );=0A=
			});=0A=
=0A=
		self.headers.next()=0A=
			.addClass( "ui-accordion-content ui-helper-reset ui-widget-content =
ui-corner-bottom" );=0A=
=0A=
		if ( options.navigation ) {=0A=
			var current =3D self.element.find( "a" ).filter( =
options.navigationFilter ).eq( 0 );=0A=
			if ( current.length ) {=0A=
				var header =3D current.closest( ".ui-accordion-header" );=0A=
				if ( header.length ) {=0A=
					// anchor within header=0A=
					self.active =3D header;=0A=
				} else {=0A=
					// anchor within content=0A=
					self.active =3D current.closest( ".ui-accordion-content" ).prev();=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		self.active =3D self._findActive( self.active || options.active )=0A=
			.addClass( "ui-state-default ui-state-active" )=0A=
			.toggleClass( "ui-corner-all" )=0A=
			.toggleClass( "ui-corner-top" );=0A=
		self.active.next().addClass( "ui-accordion-content-active" );=0A=
=0A=
		self._createIcons();=0A=
		self.resize();=0A=
		=0A=
		// ARIA=0A=
		self.element.attr( "role", "tablist" );=0A=
=0A=
		self.headers=0A=
			.attr( "role", "tab" )=0A=
			.bind( "keydown.accordion", function( event ) {=0A=
				return self._keydown( event );=0A=
			})=0A=
			.next()=0A=
				.attr( "role", "tabpanel" );=0A=
=0A=
		self.headers=0A=
			.not( self.active || "" )=0A=
			.attr({=0A=
				"aria-expanded": "false",=0A=
				"aria-selected": "false",=0A=
				tabIndex: -1=0A=
			})=0A=
			.next()=0A=
				.hide();=0A=
=0A=
		// make sure at least one header is in the tab order=0A=
		if ( !self.active.length ) {=0A=
			self.headers.eq( 0 ).attr( "tabIndex", 0 );=0A=
		} else {=0A=
			self.active=0A=
				.attr({=0A=
					"aria-expanded": "true",=0A=
					"aria-selected": "true",=0A=
					tabIndex: 0=0A=
				});=0A=
		}=0A=
=0A=
		// only need links in tab order for Safari=0A=
		if ( !$.browser.safari ) {=0A=
			self.headers.find( "a" ).attr( "tabIndex", -1 );=0A=
		}=0A=
=0A=
		if ( options.event ) {=0A=
			self.headers.bind( options.event.split(" ").join(".accordion ") + =
".accordion", function(event) {=0A=
				self._clickHandler.call( self, event, this );=0A=
				event.preventDefault();=0A=
			});=0A=
		}=0A=
	},=0A=
=0A=
	_createIcons: function() {=0A=
		var options =3D this.options;=0A=
		if ( options.icons ) {=0A=
			$( "<span></span>" )=0A=
				.addClass( "ui-icon " + options.icons.header )=0A=
				.prependTo( this.headers );=0A=
			this.active.children( ".ui-icon" )=0A=
				.toggleClass(options.icons.header)=0A=
				.toggleClass(options.icons.headerSelected);=0A=
			this.element.addClass( "ui-accordion-icons" );=0A=
		}=0A=
	},=0A=
=0A=
	_destroyIcons: function() {=0A=
		this.headers.children( ".ui-icon" ).remove();=0A=
		this.element.removeClass( "ui-accordion-icons" );=0A=
	},=0A=
=0A=
	destroy: function() {=0A=
		var options =3D this.options;=0A=
=0A=
		this.element=0A=
			.removeClass( "ui-accordion ui-widget ui-helper-reset" )=0A=
			.removeAttr( "role" );=0A=
=0A=
		this.headers=0A=
			.unbind( ".accordion" )=0A=
			.removeClass( "ui-accordion-header ui-accordion-disabled =
ui-helper-reset ui-state-default ui-corner-all ui-state-active =
ui-state-disabled ui-corner-top" )=0A=
			.removeAttr( "role" )=0A=
			.removeAttr( "aria-expanded" )=0A=
			.removeAttr( "aria-selected" )=0A=
			.removeAttr( "tabIndex" );=0A=
=0A=
		this.headers.find( "a" ).removeAttr( "tabIndex" );=0A=
		this._destroyIcons();=0A=
		var contents =3D this.headers.next()=0A=
			.css( "display", "" )=0A=
			.removeAttr( "role" )=0A=
			.removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom =
ui-accordion-content ui-accordion-content-active ui-accordion-disabled =
ui-state-disabled" );=0A=
		if ( options.autoHeight || options.fillHeight ) {=0A=
			contents.css( "height", "" );=0A=
		}=0A=
=0A=
		return $.Widget.prototype.destroy.call( this );=0A=
	},=0A=
=0A=
	_setOption: function( key, value ) {=0A=
		$.Widget.prototype._setOption.apply( this, arguments );=0A=
			=0A=
		if ( key =3D=3D "active" ) {=0A=
			this.activate( value );=0A=
		}=0A=
		if ( key =3D=3D "icons" ) {=0A=
			this._destroyIcons();=0A=
			if ( value ) {=0A=
				this._createIcons();=0A=
			}=0A=
		}=0A=
		// #5332 - opacity doesn't cascade to positioned elements in IE=0A=
		// so we need to add the disabled class to the headers and panels=0A=
		if ( key =3D=3D "disabled" ) {=0A=
			this.headers.add(this.headers.next())=0A=
				[ value ? "addClass" : "removeClass" ](=0A=
					"ui-accordion-disabled ui-state-disabled" );=0A=
		}=0A=
	},=0A=
=0A=
	_keydown: function( event ) {=0A=
		if ( this.options.disabled || event.altKey || event.ctrlKey ) {=0A=
			return;=0A=
		}=0A=
=0A=
		var keyCode =3D $.ui.keyCode,=0A=
			length =3D this.headers.length,=0A=
			currentIndex =3D this.headers.index( event.target ),=0A=
			toFocus =3D false;=0A=
=0A=
		switch ( event.keyCode ) {=0A=
			case keyCode.RIGHT:=0A=
			case keyCode.DOWN:=0A=
				toFocus =3D this.headers[ ( currentIndex + 1 ) % length ];=0A=
				break;=0A=
			case keyCode.LEFT:=0A=
			case keyCode.UP:=0A=
				toFocus =3D this.headers[ ( currentIndex - 1 + length ) % length ];=0A=
				break;=0A=
			case keyCode.SPACE:=0A=
			case keyCode.ENTER:=0A=
				this._clickHandler( { target: event.target }, event.target );=0A=
				event.preventDefault();=0A=
		}=0A=
=0A=
		if ( toFocus ) {=0A=
			$( event.target ).attr( "tabIndex", -1 );=0A=
			$( toFocus ).attr( "tabIndex", 0 );=0A=
			toFocus.focus();=0A=
			return false;=0A=
		}=0A=
=0A=
		return true;=0A=
	},=0A=
=0A=
	resize: function() {=0A=
		var options =3D this.options,=0A=
			maxHeight;=0A=
=0A=
		if ( options.fillSpace ) {=0A=
			if ( $.browser.msie ) {=0A=
				var defOverflow =3D this.element.parent().css( "overflow" );=0A=
				this.element.parent().css( "overflow", "hidden");=0A=
			}=0A=
			maxHeight =3D this.element.parent().height();=0A=
			if ($.browser.msie) {=0A=
				this.element.parent().css( "overflow", defOverflow );=0A=
			}=0A=
=0A=
			this.headers.each(function() {=0A=
				maxHeight -=3D $( this ).outerHeight( true );=0A=
			});=0A=
=0A=
			this.headers.next()=0A=
				.each(function() {=0A=
					$( this ).height( Math.max( 0, maxHeight -=0A=
						$( this ).innerHeight() + $( this ).height() ) );=0A=
				})=0A=
				.css( "overflow", "auto" );=0A=
		} else if ( options.autoHeight ) {=0A=
			maxHeight =3D 0;=0A=
			this.headers.next()=0A=
				.each(function() {=0A=
					maxHeight =3D Math.max( maxHeight, $( this ).height( "" ).height() =
);=0A=
				})=0A=
				.height( maxHeight );=0A=
		}=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	activate: function( index ) {=0A=
		// TODO this gets called on init, changing the option without an =
explicit call for that=0A=
		this.options.active =3D index;=0A=
		// call clickHandler with custom event=0A=
		var active =3D this._findActive( index )[ 0 ];=0A=
		this._clickHandler( { target: active }, active );=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	_findActive: function( selector ) {=0A=
		return selector=0A=
			? typeof selector =3D=3D=3D "number"=0A=
				? this.headers.filter( ":eq(" + selector + ")" )=0A=
				: this.headers.not( this.headers.not( selector ) )=0A=
			: selector =3D=3D=3D false=0A=
				? $( [] )=0A=
				: this.headers.filter( ":eq(0)" );=0A=
	},=0A=
=0A=
	// TODO isn't event.target enough? why the separate target argument?=0A=
	_clickHandler: function( event, target ) {=0A=
		var options =3D this.options;=0A=
		if ( options.disabled ) {=0A=
			return;=0A=
		}=0A=
=0A=
		// called only when using activate(false) to close all parts =
programmatically=0A=
		if ( !event.target ) {=0A=
			if ( !options.collapsible ) {=0A=
				return;=0A=
			}=0A=
			this.active=0A=
				.removeClass( "ui-state-active ui-corner-top" )=0A=
				.addClass( "ui-state-default ui-corner-all" )=0A=
				.children( ".ui-icon" )=0A=
					.removeClass( options.icons.headerSelected )=0A=
					.addClass( options.icons.header );=0A=
			this.active.next().addClass( "ui-accordion-content-active" );=0A=
			var toHide =3D this.active.next(),=0A=
				data =3D {=0A=
					options: options,=0A=
					newHeader: $( [] ),=0A=
					oldHeader: options.active,=0A=
					newContent: $( [] ),=0A=
					oldContent: toHide=0A=
				},=0A=
				toShow =3D ( this.active =3D $( [] ) );=0A=
			this._toggle( toShow, toHide, data );=0A=
			return;=0A=
		}=0A=
=0A=
		// get the click target=0A=
		var clicked =3D $( event.currentTarget || target ),=0A=
			clickedIsActive =3D clicked[0] =3D=3D=3D this.active[0];=0A=
=0A=
		// TODO the option is changed, is that correct?=0A=
		// TODO if it is correct, shouldn't that happen after determining that =
the click is valid?=0A=
		options.active =3D options.collapsible && clickedIsActive ?=0A=
			false :=0A=
			this.headers.index( clicked );=0A=
=0A=
		// if animations are still active, or the active header is the target, =
ignore click=0A=
		if ( this.running || ( !options.collapsible && clickedIsActive ) ) {=0A=
			return;=0A=
		}=0A=
=0A=
		// find elements to show and hide=0A=
		var active =3D this.active,=0A=
			toShow =3D clicked.next(),=0A=
			toHide =3D this.active.next(),=0A=
			data =3D {=0A=
				options: options,=0A=
				newHeader: clickedIsActive && options.collapsible ? $([]) : clicked,=0A=
				oldHeader: this.active,=0A=
				newContent: clickedIsActive && options.collapsible ? $([]) : toShow,=0A=
				oldContent: toHide=0A=
			},=0A=
			down =3D this.headers.index( this.active[0] ) > this.headers.index( =
clicked[0] );=0A=
=0A=
		// when the call to ._toggle() comes after the class changes=0A=
		// it causes a very odd bug in IE 8 (see #6720)=0A=
		this.active =3D clickedIsActive ? $([]) : clicked;=0A=
		this._toggle( toShow, toHide, data, clickedIsActive, down );=0A=
=0A=
		// switch classes=0A=
		active=0A=
			.removeClass( "ui-state-active ui-corner-top" )=0A=
			.addClass( "ui-state-default ui-corner-all" )=0A=
			.children( ".ui-icon" )=0A=
				.removeClass( options.icons.headerSelected )=0A=
				.addClass( options.icons.header );=0A=
		if ( !clickedIsActive ) {=0A=
			clicked=0A=
				.removeClass( "ui-state-default ui-corner-all" )=0A=
				.addClass( "ui-state-active ui-corner-top" )=0A=
				.children( ".ui-icon" )=0A=
					.removeClass( options.icons.header )=0A=
					.addClass( options.icons.headerSelected );=0A=
			clicked=0A=
				.next()=0A=
				.addClass( "ui-accordion-content-active" );=0A=
		}=0A=
=0A=
		return;=0A=
	},=0A=
=0A=
	_toggle: function( toShow, toHide, data, clickedIsActive, down ) {=0A=
		var self =3D this,=0A=
			options =3D self.options;=0A=
=0A=
		self.toShow =3D toShow;=0A=
		self.toHide =3D toHide;=0A=
		self.data =3D data;=0A=
=0A=
		var complete =3D function() {=0A=
			if ( !self ) {=0A=
				return;=0A=
			}=0A=
			return self._completed.apply( self, arguments );=0A=
		};=0A=
=0A=
		// trigger changestart event=0A=
		self._trigger( "changestart", null, self.data );=0A=
=0A=
		// count elements to animate=0A=
		self.running =3D toHide.size() =3D=3D=3D 0 ? toShow.size() : =
toHide.size();=0A=
=0A=
		if ( options.animated ) {=0A=
			var animOptions =3D {};=0A=
=0A=
			if ( options.collapsible && clickedIsActive ) {=0A=
				animOptions =3D {=0A=
					toShow: $( [] ),=0A=
					toHide: toHide,=0A=
					complete: complete,=0A=
					down: down,=0A=
					autoHeight: options.autoHeight || options.fillSpace=0A=
				};=0A=
			} else {=0A=
				animOptions =3D {=0A=
					toShow: toShow,=0A=
					toHide: toHide,=0A=
					complete: complete,=0A=
					down: down,=0A=
					autoHeight: options.autoHeight || options.fillSpace=0A=
				};=0A=
			}=0A=
=0A=
			if ( !options.proxied ) {=0A=
				options.proxied =3D options.animated;=0A=
			}=0A=
=0A=
			if ( !options.proxiedDuration ) {=0A=
				options.proxiedDuration =3D options.duration;=0A=
			}=0A=
=0A=
			options.animated =3D $.isFunction( options.proxied ) ?=0A=
				options.proxied( animOptions ) :=0A=
				options.proxied;=0A=
=0A=
			options.duration =3D $.isFunction( options.proxiedDuration ) ?=0A=
				options.proxiedDuration( animOptions ) :=0A=
				options.proxiedDuration;=0A=
=0A=
			var animations =3D $.ui.accordion.animations,=0A=
				duration =3D options.duration,=0A=
				easing =3D options.animated;=0A=
=0A=
			if ( easing && !animations[ easing ] && !$.easing[ easing ] ) {=0A=
				easing =3D "slide";=0A=
			}=0A=
			if ( !animations[ easing ] ) {=0A=
				animations[ easing ] =3D function( options ) {=0A=
					this.slide( options, {=0A=
						easing: easing,=0A=
						duration: duration || 700=0A=
					});=0A=
				};=0A=
			}=0A=
=0A=
			animations[ easing ]( animOptions );=0A=
		} else {=0A=
			if ( options.collapsible && clickedIsActive ) {=0A=
				toShow.toggle();=0A=
			} else {=0A=
				toHide.hide();=0A=
				toShow.show();=0A=
			}=0A=
=0A=
			complete( true );=0A=
		}=0A=
=0A=
		// TODO assert that the blur and focus triggers are really necessary, =
remove otherwise=0A=
		toHide.prev()=0A=
			.attr({=0A=
				"aria-expanded": "false",=0A=
				"aria-selected": "false",=0A=
				tabIndex: -1=0A=
			})=0A=
			.blur();=0A=
		toShow.prev()=0A=
			.attr({=0A=
				"aria-expanded": "true",=0A=
				"aria-selected": "true",=0A=
				tabIndex: 0=0A=
			})=0A=
			.focus();=0A=
	},=0A=
=0A=
	_completed: function( cancel ) {=0A=
		this.running =3D cancel ? 0 : --this.running;=0A=
		if ( this.running ) {=0A=
			return;=0A=
		}=0A=
=0A=
		if ( this.options.clearStyle ) {=0A=
			this.toShow.add( this.toHide ).css({=0A=
				height: "",=0A=
				overflow: ""=0A=
			});=0A=
		}=0A=
=0A=
		// other classes are removed before the animation; this one needs to =
stay until completed=0A=
		this.toHide.removeClass( "ui-accordion-content-active" );=0A=
		// Work around for rendering bug in IE (#5421)=0A=
		if ( this.toHide.length ) {=0A=
			this.toHide.parent()[0].className =3D =
this.toHide.parent()[0].className;=0A=
		}=0A=
=0A=
		this._trigger( "change", null, this.data );=0A=
	}=0A=
});=0A=
=0A=
$.extend( $.ui.accordion, {=0A=
	version: "1.8.13",=0A=
	animations: {=0A=
		slide: function( options, additions ) {=0A=
			options =3D $.extend({=0A=
				easing: "swing",=0A=
				duration: 300=0A=
			}, options, additions );=0A=
			if ( !options.toHide.size() ) {=0A=
				options.toShow.animate({=0A=
					height: "show",=0A=
					paddingTop: "show",=0A=
					paddingBottom: "show"=0A=
				}, options );=0A=
				return;=0A=
			}=0A=
			if ( !options.toShow.size() ) {=0A=
				options.toHide.animate({=0A=
					height: "hide",=0A=
					paddingTop: "hide",=0A=
					paddingBottom: "hide"=0A=
				}, options );=0A=
				return;=0A=
			}=0A=
			var overflow =3D options.toShow.css( "overflow" ),=0A=
				percentDone =3D 0,=0A=
				showProps =3D {},=0A=
				hideProps =3D {},=0A=
				fxAttrs =3D [ "height", "paddingTop", "paddingBottom" ],=0A=
				originalWidth;=0A=
			// fix width before calculating height of hidden element=0A=
			var s =3D options.toShow;=0A=
			originalWidth =3D s[0].style.width;=0A=
			s.width( parseInt( s.parent().width(), 10 )=0A=
				- parseInt( s.css( "paddingLeft" ), 10 )=0A=
				- parseInt( s.css( "paddingRight" ), 10 )=0A=
				- ( parseInt( s.css( "borderLeftWidth" ), 10 ) || 0 )=0A=
				- ( parseInt( s.css( "borderRightWidth" ), 10) || 0 ) );=0A=
=0A=
			$.each( fxAttrs, function( i, prop ) {=0A=
				hideProps[ prop ] =3D "hide";=0A=
=0A=
				var parts =3D ( "" + $.css( options.toShow[0], prop ) ).match( =
/^([\d+-.]+)(.*)$/ );=0A=
				showProps[ prop ] =3D {=0A=
					value: parts[ 1 ],=0A=
					unit: parts[ 2 ] || "px"=0A=
				};=0A=
			});=0A=
			options.toShow.css({ height: 0, overflow: "hidden" }).show();=0A=
			options.toHide=0A=
				.filter( ":hidden" )=0A=
					.each( options.complete )=0A=
				.end()=0A=
				.filter( ":visible" )=0A=
				.animate( hideProps, {=0A=
				step: function( now, settings ) {=0A=
					// only calculate the percent when animating height=0A=
					// IE gets very inconsistent results when animating elements=0A=
					// with small values, which is common for padding=0A=
					if ( settings.prop =3D=3D "height" ) {=0A=
						percentDone =3D ( settings.end - settings.start =3D=3D=3D 0 ) ? 0 :=0A=
							( settings.now - settings.start ) / ( settings.end - =
settings.start );=0A=
					}=0A=
=0A=
					options.toShow[ 0 ].style[ settings.prop ] =3D=0A=
						( percentDone * showProps[ settings.prop ].value )=0A=
						+ showProps[ settings.prop ].unit;=0A=
				},=0A=
				duration: options.duration,=0A=
				easing: options.easing,=0A=
				complete: function() {=0A=
					if ( !options.autoHeight ) {=0A=
						options.toShow.css( "height", "" );=0A=
					}=0A=
					options.toShow.css({=0A=
						width: originalWidth,=0A=
						overflow: overflow=0A=
					});=0A=
					options.complete();=0A=
				}=0A=
			});=0A=
		},=0A=
		bounceslide: function( options ) {=0A=
			this.slide( options, {=0A=
				easing: options.down ? "easeOutBounce" : "swing",=0A=
				duration: options.down ? 1000 : 200=0A=
			});=0A=
		}=0A=
	}=0A=
});=0A=
=0A=
})( jQuery );=0A=
/*=0A=
 * jQuery UI Autocomplete 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Autocomplete=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.ui.core.js=0A=
 *	jquery.ui.widget.js=0A=
 *	jquery.ui.position.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
// used to prevent race conditions with remote data sources=0A=
var requestIndex =3D 0;=0A=
=0A=
$.widget( "ui.autocomplete", {=0A=
	options: {=0A=
		appendTo: "body",=0A=
		autoFocus: false,=0A=
		delay: 300,=0A=
		minLength: 1,=0A=
		position: {=0A=
			my: "left top",=0A=
			at: "left bottom",=0A=
			collision: "none"=0A=
		},=0A=
		source: null=0A=
	},=0A=
=0A=
	pending: 0,=0A=
=0A=
	_create: function() {=0A=
		var self =3D this,=0A=
			doc =3D this.element[ 0 ].ownerDocument,=0A=
			suppressKeyPress;=0A=
=0A=
		this.element=0A=
			.addClass( "ui-autocomplete-input" )=0A=
			.attr( "autocomplete", "off" )=0A=
			// TODO verify these actually work as intended=0A=
			.attr({=0A=
				role: "textbox",=0A=
				"aria-autocomplete": "list",=0A=
				"aria-haspopup": "true"=0A=
			})=0A=
			.bind( "keydown.autocomplete", function( event ) {=0A=
				if ( self.options.disabled || self.element.attr( "readonly" ) ) {=0A=
					return;=0A=
				}=0A=
=0A=
				suppressKeyPress =3D false;=0A=
				var keyCode =3D $.ui.keyCode;=0A=
				switch( event.keyCode ) {=0A=
				case keyCode.PAGE_UP:=0A=
					self._move( "previousPage", event );=0A=
					break;=0A=
				case keyCode.PAGE_DOWN:=0A=
					self._move( "nextPage", event );=0A=
					break;=0A=
				case keyCode.UP:=0A=
					self._move( "previous", event );=0A=
					// prevent moving cursor to beginning of text field in some browsers=0A=
					event.preventDefault();=0A=
					break;=0A=
				case keyCode.DOWN:=0A=
					self._move( "next", event );=0A=
					// prevent moving cursor to end of text field in some browsers=0A=
					event.preventDefault();=0A=
					break;=0A=
				case keyCode.ENTER:=0A=
				case keyCode.NUMPAD_ENTER:=0A=
					// when menu is open and has focus=0A=
					if ( self.menu.active ) {=0A=
						// #6055 - Opera still allows the keypress to occur=0A=
						// which causes forms to submit=0A=
						suppressKeyPress =3D true;=0A=
						event.preventDefault();=0A=
					}=0A=
					//passthrough - ENTER and TAB both select the current element=0A=
				case keyCode.TAB:=0A=
					if ( !self.menu.active ) {=0A=
						return;=0A=
					}=0A=
					self.menu.select( event );=0A=
					break;=0A=
				case keyCode.ESCAPE:=0A=
					self.element.val( self.term );=0A=
					self.close( event );=0A=
					break;=0A=
				default:=0A=
					// keypress is triggered before the input value is changed=0A=
					clearTimeout( self.searching );=0A=
					self.searching =3D setTimeout(function() {=0A=
						// only search if the value has changed=0A=
						if ( self.term !=3D self.element.val() ) {=0A=
							self.selectedItem =3D null;=0A=
							self.search( null, event );=0A=
						}=0A=
					}, self.options.delay );=0A=
					break;=0A=
				}=0A=
			})=0A=
			.bind( "keypress.autocomplete", function( event ) {=0A=
				if ( suppressKeyPress ) {=0A=
					suppressKeyPress =3D false;=0A=
					event.preventDefault();=0A=
				}=0A=
			})=0A=
			.bind( "focus.autocomplete", function() {=0A=
				if ( self.options.disabled ) {=0A=
					return;=0A=
				}=0A=
=0A=
				self.selectedItem =3D null;=0A=
				self.previous =3D self.element.val();=0A=
			})=0A=
			.bind( "blur.autocomplete", function( event ) {=0A=
				if ( self.options.disabled ) {=0A=
					return;=0A=
				}=0A=
=0A=
				clearTimeout( self.searching );=0A=
				// clicks on the menu (or a button to trigger a search) will cause a =
blur event=0A=
				self.closing =3D setTimeout(function() {=0A=
					self.close( event );=0A=
					self._change( event );=0A=
				}, 150 );=0A=
			});=0A=
		this._initSource();=0A=
		this.response =3D function() {=0A=
			return self._response.apply( self, arguments );=0A=
		};=0A=
		this.menu =3D $( "<ul></ul>" )=0A=
			.addClass( "ui-autocomplete" )=0A=
			.appendTo( $( this.options.appendTo || "body", doc )[0] )=0A=
			// prevent the close-on-blur in case of a "slow" click on the menu =
(long mousedown)=0A=
			.mousedown(function( event ) {=0A=
				// clicking on the scrollbar causes focus to shift to the body=0A=
				// but we can't detect a mouseup or a click immediately afterward=0A=
				// so we have to track the next mousedown and close the menu if=0A=
				// the user clicks somewhere outside of the autocomplete=0A=
				var menuElement =3D self.menu.element[ 0 ];=0A=
				if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {=0A=
					setTimeout(function() {=0A=
						$( document ).one( 'mousedown', function( event ) {=0A=
							if ( event.target !=3D=3D self.element[ 0 ] &&=0A=
								event.target !=3D=3D menuElement &&=0A=
								!$.ui.contains( menuElement, event.target ) ) {=0A=
								self.close();=0A=
							}=0A=
						});=0A=
					}, 1 );=0A=
				}=0A=
=0A=
				// use another timeout to make sure the blur-event-handler on the =
input was already triggered=0A=
				setTimeout(function() {=0A=
					clearTimeout( self.closing );=0A=
				}, 13);=0A=
			})=0A=
			.menu({=0A=
				focus: function( event, ui ) {=0A=
					var item =3D ui.item.data( "item.autocomplete" );=0A=
					if ( false !=3D=3D self._trigger( "focus", event, { item: item } ) =
) {=0A=
						// use value to match what will end up in the input, if it was a =
key event=0A=
						if ( /^key/.test(event.originalEvent.type) ) {=0A=
							self.element.val( item.value );=0A=
						}=0A=
					}=0A=
				},=0A=
				selected: function( event, ui ) {=0A=
					var item =3D ui.item.data( "item.autocomplete" ),=0A=
						previous =3D self.previous;=0A=
=0A=
					// only trigger when focus was lost (click on menu)=0A=
					if ( self.element[0] !=3D=3D doc.activeElement ) {=0A=
						self.element.focus();=0A=
						self.previous =3D previous;=0A=
						// #6109 - IE triggers two focus events and the second=0A=
						// is asynchronous, so we need to reset the previous=0A=
						// term synchronously and asynchronously :-(=0A=
						setTimeout(function() {=0A=
							self.previous =3D previous;=0A=
							self.selectedItem =3D item;=0A=
						}, 1);=0A=
					}=0A=
=0A=
					if ( false !=3D=3D self._trigger( "select", event, { item: item } ) =
) {=0A=
						self.element.val( item.value );=0A=
					}=0A=
					// reset the term after the select event=0A=
					// this allows custom select handling to work properly=0A=
					self.term =3D self.element.val();=0A=
=0A=
					self.close( event );=0A=
					self.selectedItem =3D item;=0A=
				},=0A=
				blur: function( event, ui ) {=0A=
					// don't set the value of the text field if it's already correct=0A=
					// this prevents moving the cursor unnecessarily=0A=
					if ( self.menu.element.is(":visible") &&=0A=
						( self.element.val() !=3D=3D self.term ) ) {=0A=
						self.element.val( self.term );=0A=
					}=0A=
				}=0A=
			})=0A=
			.zIndex( this.element.zIndex() + 1 )=0A=
			// workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781=0A=
			.css({ top: 0, left: 0 })=0A=
			.hide()=0A=
			.data( "menu" );=0A=
		if ( $.fn.bgiframe ) {=0A=
			 this.menu.element.bgiframe();=0A=
		}=0A=
	},=0A=
=0A=
	destroy: function() {=0A=
		this.element=0A=
			.removeClass( "ui-autocomplete-input" )=0A=
			.removeAttr( "autocomplete" )=0A=
			.removeAttr( "role" )=0A=
			.removeAttr( "aria-autocomplete" )=0A=
			.removeAttr( "aria-haspopup" );=0A=
		this.menu.element.remove();=0A=
		$.Widget.prototype.destroy.call( this );=0A=
	},=0A=
=0A=
	_setOption: function( key, value ) {=0A=
		$.Widget.prototype._setOption.apply( this, arguments );=0A=
		if ( key =3D=3D=3D "source" ) {=0A=
			this._initSource();=0A=
		}=0A=
		if ( key =3D=3D=3D "appendTo" ) {=0A=
			this.menu.element.appendTo( $( value || "body", =
this.element[0].ownerDocument )[0] )=0A=
		}=0A=
		if ( key =3D=3D=3D "disabled" && value && this.xhr ) {=0A=
			this.xhr.abort();=0A=
		}=0A=
	},=0A=
=0A=
	_initSource: function() {=0A=
		var self =3D this,=0A=
			array,=0A=
			url;=0A=
		if ( $.isArray(this.options.source) ) {=0A=
			array =3D this.options.source;=0A=
			this.source =3D function( request, response ) {=0A=
				response( $.ui.autocomplete.filter(array, request.term) );=0A=
			};=0A=
		} else if ( typeof this.options.source =3D=3D=3D "string" ) {=0A=
			url =3D this.options.source;=0A=
			this.source =3D function( request, response ) {=0A=
				if ( self.xhr ) {=0A=
					self.xhr.abort();=0A=
				}=0A=
				self.xhr =3D $.ajax({=0A=
					url: url,=0A=
					data: request,=0A=
					dataType: "json",=0A=
					autocompleteRequest: ++requestIndex,=0A=
					success: function( data, status ) {=0A=
						if ( this.autocompleteRequest =3D=3D=3D requestIndex ) {=0A=
							response( data );=0A=
						}=0A=
					},=0A=
					error: function() {=0A=
						if ( this.autocompleteRequest =3D=3D=3D requestIndex ) {=0A=
							response( [] );=0A=
						}=0A=
					}=0A=
				});=0A=
			};=0A=
		} else {=0A=
			this.source =3D this.options.source;=0A=
		}=0A=
	},=0A=
=0A=
	search: function( value, event ) {=0A=
		value =3D value !=3D null ? value : this.element.val();=0A=
=0A=
		// always save the actual value, not the one passed as an argument=0A=
		this.term =3D this.element.val();=0A=
=0A=
		if ( value.length < this.options.minLength ) {=0A=
			return this.close( event );=0A=
		}=0A=
=0A=
		clearTimeout( this.closing );=0A=
		if ( this._trigger( "search", event ) =3D=3D=3D false ) {=0A=
			return;=0A=
		}=0A=
=0A=
		return this._search( value );=0A=
	},=0A=
=0A=
	_search: function( value ) {=0A=
		this.pending++;=0A=
		this.element.addClass( "ui-autocomplete-loading" );=0A=
=0A=
		this.source( { term: value }, this.response );=0A=
	},=0A=
=0A=
	_response: function( content ) {=0A=
		if ( !this.options.disabled && content && content.length ) {=0A=
			content =3D this._normalize( content );=0A=
			this._suggest( content );=0A=
			this._trigger( "open" );=0A=
		} else {=0A=
			this.close();=0A=
		}=0A=
		this.pending--;=0A=
		if ( !this.pending ) {=0A=
			this.element.removeClass( "ui-autocomplete-loading" );=0A=
		}=0A=
	},=0A=
=0A=
	close: function( event ) {=0A=
		clearTimeout( this.closing );=0A=
		if ( this.menu.element.is(":visible") ) {=0A=
			this.menu.element.hide();=0A=
			this.menu.deactivate();=0A=
			this._trigger( "close", event );=0A=
		}=0A=
	},=0A=
	=0A=
	_change: function( event ) {=0A=
		if ( this.previous !=3D=3D this.element.val() ) {=0A=
			this._trigger( "change", event, { item: this.selectedItem } );=0A=
		}=0A=
	},=0A=
=0A=
	_normalize: function( items ) {=0A=
		// assume all items have the right format when the first item is =
complete=0A=
		if ( items.length && items[0].label && items[0].value ) {=0A=
			return items;=0A=
		}=0A=
		return $.map( items, function(item) {=0A=
			if ( typeof item =3D=3D=3D "string" ) {=0A=
				return {=0A=
					label: item,=0A=
					value: item=0A=
				};=0A=
			}=0A=
			return $.extend({=0A=
				label: item.label || item.value,=0A=
				value: item.value || item.label=0A=
			}, item );=0A=
		});=0A=
	},=0A=
=0A=
	_suggest: function( items ) {=0A=
		var ul =3D this.menu.element=0A=
			.empty()=0A=
			.zIndex( this.element.zIndex() + 1 );=0A=
		this._renderMenu( ul, items );=0A=
		// TODO refresh should check if the active item is still in the dom, =
removing the need for a manual deactivate=0A=
		this.menu.deactivate();=0A=
		this.menu.refresh();=0A=
=0A=
		// size and position menu=0A=
		ul.show();=0A=
		this._resizeMenu();=0A=
		ul.position( $.extend({=0A=
			of: this.element=0A=
		}, this.options.position ));=0A=
=0A=
		if ( this.options.autoFocus ) {=0A=
			this.menu.next( new $.Event("mouseover") );=0A=
		}=0A=
	},=0A=
=0A=
	_resizeMenu: function() {=0A=
		var ul =3D this.menu.element;=0A=
		ul.outerWidth( Math.max(=0A=
			ul.width( "" ).outerWidth(),=0A=
			this.element.outerWidth()=0A=
		) );=0A=
	},=0A=
=0A=
	_renderMenu: function( ul, items ) {=0A=
		var self =3D this;=0A=
		$.each( items, function( index, item ) {=0A=
			self._renderItem( ul, item );=0A=
		});=0A=
	},=0A=
=0A=
	_renderItem: function( ul, item) {=0A=
		return $( "<li></li>" )=0A=
			.data( "item.autocomplete", item )=0A=
			.append( $( "<a></a>" ).text( item.label ) )=0A=
			.appendTo( ul );=0A=
	},=0A=
=0A=
	_move: function( direction, event ) {=0A=
		if ( !this.menu.element.is(":visible") ) {=0A=
			this.search( null, event );=0A=
			return;=0A=
		}=0A=
		if ( this.menu.first() && /^previous/.test(direction) ||=0A=
				this.menu.last() && /^next/.test(direction) ) {=0A=
			this.element.val( this.term );=0A=
			this.menu.deactivate();=0A=
			return;=0A=
		}=0A=
		this.menu[ direction ]( event );=0A=
	},=0A=
=0A=
	widget: function() {=0A=
		return this.menu.element;=0A=
	}=0A=
});=0A=
=0A=
$.extend( $.ui.autocomplete, {=0A=
	escapeRegex: function( value ) {=0A=
		return value.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");=0A=
	},=0A=
	filter: function(array, term) {=0A=
		var matcher =3D new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );=0A=
		return $.grep( array, function(value) {=0A=
			return matcher.test( value.label || value.value || value );=0A=
		});=0A=
	}=0A=
});=0A=
=0A=
}( jQuery ));=0A=
=0A=
/*=0A=
 * jQuery UI Menu (not officially released)=0A=
 * =0A=
 * This widget isn't yet finished and the API is subject to change. We =
plan to finish=0A=
 * it for the next release. You're welcome to give it a try anyway and =
give us feedback,=0A=
 * as long as you're okay with migrating your code later on. We can help =
with that, too.=0A=
 *=0A=
 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Menu=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.ui.core.js=0A=
 *  jquery.ui.widget.js=0A=
 */=0A=
(function($) {=0A=
=0A=
$.widget("ui.menu", {=0A=
	_create: function() {=0A=
		var self =3D this;=0A=
		this.element=0A=
			.addClass("ui-menu ui-widget ui-widget-content ui-corner-all")=0A=
			.attr({=0A=
				role: "listbox",=0A=
				"aria-activedescendant": "ui-active-menuitem"=0A=
			})=0A=
			.click(function( event ) {=0A=
				if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) {=0A=
					return;=0A=
				}=0A=
				// temporary=0A=
				event.preventDefault();=0A=
				self.select( event );=0A=
			});=0A=
		this.refresh();=0A=
	},=0A=
	=0A=
	refresh: function() {=0A=
		var self =3D this;=0A=
=0A=
		// don't refresh list items that are already adapted=0A=
		var items =3D this.element.children("li:not(.ui-menu-item):has(a)")=0A=
			.addClass("ui-menu-item")=0A=
			.attr("role", "menuitem");=0A=
		=0A=
		items.children("a")=0A=
			.addClass("ui-corner-all")=0A=
			.attr("tabindex", -1)=0A=
			// mouseenter doesn't work with event delegation=0A=
			.mouseenter(function( event ) {=0A=
				self.activate( event, $(this).parent() );=0A=
			})=0A=
			.mouseleave(function() {=0A=
				self.deactivate();=0A=
			});=0A=
	},=0A=
=0A=
	activate: function( event, item ) {=0A=
		this.deactivate();=0A=
		if (this.hasScroll()) {=0A=
			var offset =3D item.offset().top - this.element.offset().top,=0A=
				scroll =3D this.element.scrollTop(),=0A=
				elementHeight =3D this.element.height();=0A=
			if (offset < 0) {=0A=
				this.element.scrollTop( scroll + offset);=0A=
			} else if (offset >=3D elementHeight) {=0A=
				this.element.scrollTop( scroll + offset - elementHeight + =
item.height());=0A=
			}=0A=
		}=0A=
		this.active =3D item.eq(0)=0A=
			.children("a")=0A=
				.addClass("ui-state-hover")=0A=
				.attr("id", "ui-active-menuitem")=0A=
			.end();=0A=
		this._trigger("focus", event, { item: item });=0A=
	},=0A=
=0A=
	deactivate: function() {=0A=
		if (!this.active) { return; }=0A=
=0A=
		this.active.children("a")=0A=
			.removeClass("ui-state-hover")=0A=
			.removeAttr("id");=0A=
		this._trigger("blur");=0A=
		this.active =3D null;=0A=
	},=0A=
=0A=
	next: function(event) {=0A=
		this.move("next", ".ui-menu-item:first", event);=0A=
	},=0A=
=0A=
	previous: function(event) {=0A=
		this.move("prev", ".ui-menu-item:last", event);=0A=
	},=0A=
=0A=
	first: function() {=0A=
		return this.active && !this.active.prevAll(".ui-menu-item").length;=0A=
	},=0A=
=0A=
	last: function() {=0A=
		return this.active && !this.active.nextAll(".ui-menu-item").length;=0A=
	},=0A=
=0A=
	move: function(direction, edge, event) {=0A=
		if (!this.active) {=0A=
			this.activate(event, this.element.children(edge));=0A=
			return;=0A=
		}=0A=
		var next =3D this.active[direction + "All"](".ui-menu-item").eq(0);=0A=
		if (next.length) {=0A=
			this.activate(event, next);=0A=
		} else {=0A=
			this.activate(event, this.element.children(edge));=0A=
		}=0A=
	},=0A=
=0A=
	// TODO merge with previousPage=0A=
	nextPage: function(event) {=0A=
		if (this.hasScroll()) {=0A=
			// TODO merge with no-scroll-else=0A=
			if (!this.active || this.last()) {=0A=
				this.activate(event, this.element.children(".ui-menu-item:first"));=0A=
				return;=0A=
			}=0A=
			var base =3D this.active.offset().top,=0A=
				height =3D this.element.height(),=0A=
				result =3D this.element.children(".ui-menu-item").filter(function() {=0A=
					var close =3D $(this).offset().top - base - height + =
$(this).height();=0A=
					// TODO improve approximation=0A=
					return close < 10 && close > -10;=0A=
				});=0A=
=0A=
			// TODO try to catch this earlier when scrollTop indicates the last =
page anyway=0A=
			if (!result.length) {=0A=
				result =3D this.element.children(".ui-menu-item:last");=0A=
			}=0A=
			this.activate(event, result);=0A=
		} else {=0A=
			this.activate(event, this.element.children(".ui-menu-item")=0A=
				.filter(!this.active || this.last() ? ":first" : ":last"));=0A=
		}=0A=
	},=0A=
=0A=
	// TODO merge with nextPage=0A=
	previousPage: function(event) {=0A=
		if (this.hasScroll()) {=0A=
			// TODO merge with no-scroll-else=0A=
			if (!this.active || this.first()) {=0A=
				this.activate(event, this.element.children(".ui-menu-item:last"));=0A=
				return;=0A=
			}=0A=
=0A=
			var base =3D this.active.offset().top,=0A=
				height =3D this.element.height();=0A=
				result =3D this.element.children(".ui-menu-item").filter(function() {=0A=
					var close =3D $(this).offset().top - base + height - =
$(this).height();=0A=
					// TODO improve approximation=0A=
					return close < 10 && close > -10;=0A=
				});=0A=
=0A=
			// TODO try to catch this earlier when scrollTop indicates the last =
page anyway=0A=
			if (!result.length) {=0A=
				result =3D this.element.children(".ui-menu-item:first");=0A=
			}=0A=
			this.activate(event, result);=0A=
		} else {=0A=
			this.activate(event, this.element.children(".ui-menu-item")=0A=
				.filter(!this.active || this.first() ? ":last" : ":first"));=0A=
		}=0A=
	},=0A=
=0A=
	hasScroll: function() {=0A=
		return this.element.height() < this.element[ $.fn.prop ? "prop" : =
"attr" ]("scrollHeight");=0A=
	},=0A=
=0A=
	select: function( event ) {=0A=
		this._trigger("selected", event, { item: this.active });=0A=
	}=0A=
});=0A=
=0A=
}(jQuery));=0A=
/*=0A=
 * jQuery UI Button 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Button=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.ui.core.js=0A=
 *	jquery.ui.widget.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
var lastActive,=0A=
	baseClasses =3D "ui-button ui-widget ui-state-default ui-corner-all",=0A=
	stateClasses =3D "ui-state-hover ui-state-active ",=0A=
	typeClasses =3D "ui-button-icons-only ui-button-icon-only =
ui-button-text-icons ui-button-text-icon-primary =
ui-button-text-icon-secondary ui-button-text-only",=0A=
	formResetHandler =3D function( event ) {=0A=
		$( ":ui-button", event.target.form ).each(function() {=0A=
			var inst =3D $( this ).data( "button" );=0A=
			setTimeout(function() {=0A=
				inst.refresh();=0A=
			}, 1 );=0A=
		});=0A=
	},=0A=
	radioGroup =3D function( radio ) {=0A=
		var name =3D radio.name,=0A=
			form =3D radio.form,=0A=
			radios =3D $( [] );=0A=
		if ( name ) {=0A=
			if ( form ) {=0A=
				radios =3D $( form ).find( "[name=3D'" + name + "']" );=0A=
			} else {=0A=
				radios =3D $( "[name=3D'" + name + "']", radio.ownerDocument )=0A=
					.filter(function() {=0A=
						return !this.form;=0A=
					});=0A=
			}=0A=
		}=0A=
		return radios;=0A=
	};=0A=
=0A=
$.widget( "ui.button", {=0A=
	options: {=0A=
		disabled: null,=0A=
		text: true,=0A=
		label: null,=0A=
		icons: {=0A=
			primary: null,=0A=
			secondary: null=0A=
		}=0A=
	},=0A=
	_create: function() {=0A=
		this.element.closest( "form" )=0A=
			.unbind( "reset.button" )=0A=
			.bind( "reset.button", formResetHandler );=0A=
=0A=
		if ( typeof this.options.disabled !=3D=3D "boolean" ) {=0A=
			this.options.disabled =3D this.element.attr( "disabled" );=0A=
		}=0A=
=0A=
		this._determineButtonType();=0A=
		this.hasTitle =3D !!this.buttonElement.attr( "title" );=0A=
=0A=
		var self =3D this,=0A=
			options =3D this.options,=0A=
			toggleButton =3D this.type =3D=3D=3D "checkbox" || this.type =
=3D=3D=3D "radio",=0A=
			hoverClass =3D "ui-state-hover" + ( !toggleButton ? " =
ui-state-active" : "" ),=0A=
			focusClass =3D "ui-state-focus";=0A=
=0A=
		if ( options.label =3D=3D=3D null ) {=0A=
			options.label =3D this.buttonElement.html();=0A=
		}=0A=
=0A=
		if ( this.element.is( ":disabled" ) ) {=0A=
			options.disabled =3D true;=0A=
		}=0A=
=0A=
		this.buttonElement=0A=
			.addClass( baseClasses )=0A=
			.attr( "role", "button" )=0A=
			.bind( "mouseenter.button", function() {=0A=
				if ( options.disabled ) {=0A=
					return;=0A=
				}=0A=
				$( this ).addClass( "ui-state-hover" );=0A=
				if ( this =3D=3D=3D lastActive ) {=0A=
					$( this ).addClass( "ui-state-active" );=0A=
				}=0A=
			})=0A=
			.bind( "mouseleave.button", function() {=0A=
				if ( options.disabled ) {=0A=
					return;=0A=
				}=0A=
				$( this ).removeClass( hoverClass );=0A=
			})=0A=
			.bind( "focus.button", function() {=0A=
				// no need to check disabled, focus won't be triggered anyway=0A=
				$( this ).addClass( focusClass );=0A=
			})=0A=
			.bind( "blur.button", function() {=0A=
				$( this ).removeClass( focusClass );=0A=
			})=0A=
			.bind( "click.button", function( event ) {=0A=
				if ( options.disabled ) {=0A=
					event.stopImmediatePropagation();=0A=
				}=0A=
			});=0A=
=0A=
		if ( toggleButton ) {=0A=
			this.element.bind( "change.button", function() {=0A=
				self.refresh();=0A=
			});=0A=
		}=0A=
=0A=
		if ( this.type =3D=3D=3D "checkbox" ) {=0A=
			this.buttonElement.bind( "click.button", function() {=0A=
				if ( options.disabled ) {=0A=
					return false;=0A=
				}=0A=
				$( this ).toggleClass( "ui-state-active" );=0A=
				self.buttonElement.attr( "aria-pressed", self.element[0].checked );=0A=
			});=0A=
		} else if ( this.type =3D=3D=3D "radio" ) {=0A=
			this.buttonElement.bind( "click.button", function() {=0A=
				if ( options.disabled ) {=0A=
					return false;=0A=
				}=0A=
				$( this ).addClass( "ui-state-active" );=0A=
				self.buttonElement.attr( "aria-pressed", true );=0A=
=0A=
				var radio =3D self.element[ 0 ];=0A=
				radioGroup( radio )=0A=
					.not( radio )=0A=
					.map(function() {=0A=
						return $( this ).button( "widget" )[ 0 ];=0A=
					})=0A=
					.removeClass( "ui-state-active" )=0A=
					.attr( "aria-pressed", false );=0A=
			});=0A=
		} else {=0A=
			this.buttonElement=0A=
				.bind( "mousedown.button", function() {=0A=
					if ( options.disabled ) {=0A=
						return false;=0A=
					}=0A=
					$( this ).addClass( "ui-state-active" );=0A=
					lastActive =3D this;=0A=
					$( document ).one( "mouseup", function() {=0A=
						lastActive =3D null;=0A=
					});=0A=
				})=0A=
				.bind( "mouseup.button", function() {=0A=
					if ( options.disabled ) {=0A=
						return false;=0A=
					}=0A=
					$( this ).removeClass( "ui-state-active" );=0A=
				})=0A=
				.bind( "keydown.button", function(event) {=0A=
					if ( options.disabled ) {=0A=
						return false;=0A=
					}=0A=
					if ( event.keyCode =3D=3D $.ui.keyCode.SPACE || event.keyCode =
=3D=3D $.ui.keyCode.ENTER ) {=0A=
						$( this ).addClass( "ui-state-active" );=0A=
					}=0A=
				})=0A=
				.bind( "keyup.button", function() {=0A=
					$( this ).removeClass( "ui-state-active" );=0A=
				});=0A=
=0A=
			if ( this.buttonElement.is("a") ) {=0A=
				this.buttonElement.keyup(function(event) {=0A=
					if ( event.keyCode =3D=3D=3D $.ui.keyCode.SPACE ) {=0A=
						// TODO pass through original event correctly (just as 2nd =
argument doesn't work)=0A=
						$( this ).click();=0A=
					}=0A=
				});=0A=
			}=0A=
		}=0A=
=0A=
		// TODO: pull out $.Widget's handling for the disabled option into=0A=
		// $.Widget.prototype._setOptionDisabled so it's easy to proxy and can=0A=
		// be overridden by individual plugins=0A=
		this._setOption( "disabled", options.disabled );=0A=
	},=0A=
=0A=
	_determineButtonType: function() {=0A=
=0A=
		if ( this.element.is(":checkbox") ) {=0A=
			this.type =3D "checkbox";=0A=
		} else if ( this.element.is(":radio") ) {=0A=
			this.type =3D "radio";=0A=
		} else if ( this.element.is("input") ) {=0A=
			this.type =3D "input";=0A=
		} else {=0A=
			this.type =3D "button";=0A=
		}=0A=
=0A=
		if ( this.type =3D=3D=3D "checkbox" || this.type =3D=3D=3D "radio" ) {=0A=
			// we don't search against the document in case the element=0A=
			// is disconnected from the DOM=0A=
			var ancestor =3D this.element.parents().filter(":last"),=0A=
				labelSelector =3D "label[for=3D" + this.element.attr("id") + "]";=0A=
			this.buttonElement =3D ancestor.find( labelSelector );=0A=
			if ( !this.buttonElement.length ) {=0A=
				ancestor =3D ancestor.length ? ancestor.siblings() : =
this.element.siblings();=0A=
				this.buttonElement =3D ancestor.filter( labelSelector );=0A=
				if ( !this.buttonElement.length ) {=0A=
					this.buttonElement =3D ancestor.find( labelSelector );=0A=
				}=0A=
			}=0A=
			this.element.addClass( "ui-helper-hidden-accessible" );=0A=
=0A=
			var checked =3D this.element.is( ":checked" );=0A=
			if ( checked ) {=0A=
				this.buttonElement.addClass( "ui-state-active" );=0A=
			}=0A=
			this.buttonElement.attr( "aria-pressed", checked );=0A=
		} else {=0A=
			this.buttonElement =3D this.element;=0A=
		}=0A=
	},=0A=
=0A=
	widget: function() {=0A=
		return this.buttonElement;=0A=
	},=0A=
=0A=
	destroy: function() {=0A=
		this.element=0A=
			.removeClass( "ui-helper-hidden-accessible" );=0A=
		this.buttonElement=0A=
			.removeClass( baseClasses + " " + stateClasses + " " + typeClasses )=0A=
			.removeAttr( "role" )=0A=
			.removeAttr( "aria-pressed" )=0A=
			.html( this.buttonElement.find(".ui-button-text").html() );=0A=
=0A=
		if ( !this.hasTitle ) {=0A=
			this.buttonElement.removeAttr( "title" );=0A=
		}=0A=
=0A=
		$.Widget.prototype.destroy.call( this );=0A=
	},=0A=
=0A=
	_setOption: function( key, value ) {=0A=
		$.Widget.prototype._setOption.apply( this, arguments );=0A=
		if ( key =3D=3D=3D "disabled" ) {=0A=
			if ( value ) {=0A=
				this.element.attr( "disabled", true );=0A=
			} else {=0A=
				this.element.removeAttr( "disabled" );=0A=
			}=0A=
		}=0A=
		this._resetButton();=0A=
	},=0A=
=0A=
	refresh: function() {=0A=
		var isDisabled =3D this.element.is( ":disabled" );=0A=
		if ( isDisabled !=3D=3D this.options.disabled ) {=0A=
			this._setOption( "disabled", isDisabled );=0A=
		}=0A=
		if ( this.type =3D=3D=3D "radio" ) {=0A=
			radioGroup( this.element[0] ).each(function() {=0A=
				if ( $( this ).is( ":checked" ) ) {=0A=
					$( this ).button( "widget" )=0A=
						.addClass( "ui-state-active" )=0A=
						.attr( "aria-pressed", true );=0A=
				} else {=0A=
					$( this ).button( "widget" )=0A=
						.removeClass( "ui-state-active" )=0A=
						.attr( "aria-pressed", false );=0A=
				}=0A=
			});=0A=
		} else if ( this.type =3D=3D=3D "checkbox" ) {=0A=
			if ( this.element.is( ":checked" ) ) {=0A=
				this.buttonElement=0A=
					.addClass( "ui-state-active" )=0A=
					.attr( "aria-pressed", true );=0A=
			} else {=0A=
				this.buttonElement=0A=
					.removeClass( "ui-state-active" )=0A=
					.attr( "aria-pressed", false );=0A=
			}=0A=
		}=0A=
	},=0A=
=0A=
	_resetButton: function() {=0A=
		if ( this.type =3D=3D=3D "input" ) {=0A=
			if ( this.options.label ) {=0A=
				this.element.val( this.options.label );=0A=
			}=0A=
			return;=0A=
		}=0A=
		var buttonElement =3D this.buttonElement.removeClass( typeClasses ),=0A=
			buttonText =3D $( "<span></span>" )=0A=
				.addClass( "ui-button-text" )=0A=
				.html( this.options.label )=0A=
				.appendTo( buttonElement.empty() )=0A=
				.text(),=0A=
			icons =3D this.options.icons,=0A=
			multipleIcons =3D icons.primary && icons.secondary,=0A=
			buttonClasses =3D [];  =0A=
=0A=
		if ( icons.primary || icons.secondary ) {=0A=
			if ( this.options.text ) {=0A=
				buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : =
( icons.primary ? "-primary" : "-secondary" ) ) );=0A=
			}=0A=
=0A=
			if ( icons.primary ) {=0A=
				buttonElement.prepend( "<span class=3D'ui-button-icon-primary =
ui-icon " + icons.primary + "'></span>" );=0A=
			}=0A=
=0A=
			if ( icons.secondary ) {=0A=
				buttonElement.append( "<span class=3D'ui-button-icon-secondary =
ui-icon " + icons.secondary + "'></span>" );=0A=
			}=0A=
=0A=
			if ( !this.options.text ) {=0A=
				buttonClasses.push( multipleIcons ? "ui-button-icons-only" : =
"ui-button-icon-only" );=0A=
=0A=
				if ( !this.hasTitle ) {=0A=
					buttonElement.attr( "title", buttonText );=0A=
				}=0A=
			}=0A=
		} else {=0A=
			buttonClasses.push( "ui-button-text-only" );=0A=
		}=0A=
		buttonElement.addClass( buttonClasses.join( " " ) );=0A=
	}=0A=
});=0A=
=0A=
$.widget( "ui.buttonset", {=0A=
	options: {=0A=
		items: ":button, :submit, :reset, :checkbox, :radio, a, :data(button)"=0A=
	},=0A=
=0A=
	_create: function() {=0A=
		this.element.addClass( "ui-buttonset" );=0A=
	},=0A=
	=0A=
	_init: function() {=0A=
		this.refresh();=0A=
	},=0A=
=0A=
	_setOption: function( key, value ) {=0A=
		if ( key =3D=3D=3D "disabled" ) {=0A=
			this.buttons.button( "option", key, value );=0A=
		}=0A=
=0A=
		$.Widget.prototype._setOption.apply( this, arguments );=0A=
	},=0A=
	=0A=
	refresh: function() {=0A=
		this.buttons =3D this.element.find( this.options.items )=0A=
			.filter( ":ui-button" )=0A=
				.button( "refresh" )=0A=
			.end()=0A=
			.not( ":ui-button" )=0A=
				.button()=0A=
			.end()=0A=
			.map(function() {=0A=
				return $( this ).button( "widget" )[ 0 ];=0A=
			})=0A=
				.removeClass( "ui-corner-all ui-corner-left ui-corner-right" )=0A=
				.filter( ":first" )=0A=
					.addClass( "ui-corner-left" )=0A=
				.end()=0A=
				.filter( ":last" )=0A=
					.addClass( "ui-corner-right" )=0A=
				.end()=0A=
			.end();=0A=
	},=0A=
=0A=
	destroy: function() {=0A=
		this.element.removeClass( "ui-buttonset" );=0A=
		this.buttons=0A=
			.map(function() {=0A=
				return $( this ).button( "widget" )[ 0 ];=0A=
			})=0A=
				.removeClass( "ui-corner-left ui-corner-right" )=0A=
			.end()=0A=
			.button( "destroy" );=0A=
=0A=
		$.Widget.prototype.destroy.call( this );=0A=
	}=0A=
});=0A=
=0A=
}( jQuery ) );=0A=
/*=0A=
 * jQuery UI Dialog 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Dialog=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.ui.core.js=0A=
 *	jquery.ui.widget.js=0A=
 *  jquery.ui.button.js=0A=
 *	jquery.ui.draggable.js=0A=
 *	jquery.ui.mouse.js=0A=
 *	jquery.ui.position.js=0A=
 *	jquery.ui.resizable.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
var uiDialogClasses =3D=0A=
		'ui-dialog ' +=0A=
		'ui-widget ' +=0A=
		'ui-widget-content ' +=0A=
		'ui-corner-all ',=0A=
	sizeRelatedOptions =3D {=0A=
		buttons: true,=0A=
		height: true,=0A=
		maxHeight: true,=0A=
		maxWidth: true,=0A=
		minHeight: true,=0A=
		minWidth: true,=0A=
		width: true=0A=
	},=0A=
	resizableRelatedOptions =3D {=0A=
		maxHeight: true,=0A=
		maxWidth: true,=0A=
		minHeight: true,=0A=
		minWidth: true=0A=
	},=0A=
	// support for jQuery 1.3.2 - handle common attrFn methods for dialog=0A=
	attrFn =3D $.attrFn || {=0A=
		val: true,=0A=
		css: true,=0A=
		html: true,=0A=
		text: true,=0A=
		data: true,=0A=
		width: true,=0A=
		height: true,=0A=
		offset: true,=0A=
		click: true=0A=
	};=0A=
=0A=
$.widget("ui.dialog", {=0A=
	options: {=0A=
		autoOpen: true,=0A=
		buttons: {},=0A=
		closeOnEscape: true,=0A=
		closeText: 'close',=0A=
		dialogClass: '',=0A=
		draggable: true,=0A=
		hide: null,=0A=
		height: 'auto',=0A=
		maxHeight: false,=0A=
		maxWidth: false,=0A=
		minHeight: 150,=0A=
		minWidth: 150,=0A=
		modal: false,=0A=
		position: {=0A=
			my: 'center',=0A=
			at: 'center',=0A=
			collision: 'fit',=0A=
			// ensure that the titlebar is never outside the document=0A=
			using: function(pos) {=0A=
				var topOffset =3D $(this).css(pos).offset().top;=0A=
				if (topOffset < 0) {=0A=
					$(this).css('top', pos.top - topOffset);=0A=
				}=0A=
			}=0A=
		},=0A=
		resizable: true,=0A=
		show: null,=0A=
		stack: true,=0A=
		title: '',=0A=
		width: 300,=0A=
		zIndex: 1000=0A=
	},=0A=
=0A=
	_create: function() {=0A=
		this.originalTitle =3D this.element.attr('title');=0A=
		// #5742 - .attr() might return a DOMElement=0A=
		if ( typeof this.originalTitle !=3D=3D "string" ) {=0A=
			this.originalTitle =3D "";=0A=
		}=0A=
=0A=
		this.options.title =3D this.options.title || this.originalTitle;=0A=
		var self =3D this,=0A=
			options =3D self.options,=0A=
=0A=
			title =3D options.title || '&#160;',=0A=
			titleId =3D $.ui.dialog.getTitleId(self.element),=0A=
=0A=
			uiDialog =3D (self.uiDialog =3D $('<div></div>'))=0A=
				.appendTo(document.body)=0A=
				.hide()=0A=
				.addClass(uiDialogClasses + options.dialogClass)=0A=
				.css({=0A=
					zIndex: options.zIndex=0A=
				})=0A=
				// setting tabIndex makes the div focusable=0A=
				// setting outline to 0 prevents a border on focus in Mozilla=0A=
				.attr('tabIndex', -1).css('outline', 0).keydown(function(event) {=0A=
					if (options.closeOnEscape && event.keyCode &&=0A=
						event.keyCode =3D=3D=3D $.ui.keyCode.ESCAPE) {=0A=
						=0A=
						self.close(event);=0A=
						event.preventDefault();=0A=
					}=0A=
				})=0A=
				.attr({=0A=
					role: 'dialog',=0A=
					'aria-labelledby': titleId=0A=
				})=0A=
				.mousedown(function(event) {=0A=
					self.moveToTop(false, event);=0A=
				}),=0A=
=0A=
			uiDialogContent =3D self.element=0A=
				.show()=0A=
				.removeAttr('title')=0A=
				.addClass(=0A=
					'ui-dialog-content ' +=0A=
					'ui-widget-content')=0A=
				.appendTo(uiDialog),=0A=
=0A=
			uiDialogTitlebar =3D (self.uiDialogTitlebar =3D $('<div></div>'))=0A=
				.addClass(=0A=
					'ui-dialog-titlebar ' +=0A=
					'ui-widget-header ' +=0A=
					'ui-corner-all ' +=0A=
					'ui-helper-clearfix'=0A=
				)=0A=
				.prependTo(uiDialog),=0A=
=0A=
			uiDialogTitlebarClose =3D $('<a href=3D"#"></a>')=0A=
				.addClass(=0A=
					'ui-dialog-titlebar-close ' +=0A=
					'ui-corner-all'=0A=
				)=0A=
				.attr('role', 'button')=0A=
				.hover(=0A=
					function() {=0A=
						uiDialogTitlebarClose.addClass('ui-state-hover');=0A=
					},=0A=
					function() {=0A=
						uiDialogTitlebarClose.removeClass('ui-state-hover');=0A=
					}=0A=
				)=0A=
				.focus(function() {=0A=
					uiDialogTitlebarClose.addClass('ui-state-focus');=0A=
				})=0A=
				.blur(function() {=0A=
					uiDialogTitlebarClose.removeClass('ui-state-focus');=0A=
				})=0A=
				.click(function(event) {=0A=
					self.close(event);=0A=
					return false;=0A=
				})=0A=
				.appendTo(uiDialogTitlebar),=0A=
=0A=
			uiDialogTitlebarCloseText =3D (self.uiDialogTitlebarCloseText =3D =
$('<span></span>'))=0A=
				.addClass(=0A=
					'ui-icon ' +=0A=
					'ui-icon-closethick'=0A=
				)=0A=
				.text(options.closeText)=0A=
				.appendTo(uiDialogTitlebarClose),=0A=
=0A=
			uiDialogTitle =3D $('<span></span>')=0A=
				.addClass('ui-dialog-title')=0A=
				.attr('id', titleId)=0A=
				.html(title)=0A=
				.prependTo(uiDialogTitlebar);=0A=
=0A=
		//handling of deprecated beforeclose (vs beforeClose) option=0A=
		//Ticket #4669 http://dev.jqueryui.com/ticket/4669=0A=
		//TODO: remove in 1.9pre=0A=
		if ($.isFunction(options.beforeclose) && =
!$.isFunction(options.beforeClose)) {=0A=
			options.beforeClose =3D options.beforeclose;=0A=
		}=0A=
=0A=
		uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();=0A=
=0A=
		if (options.draggable && $.fn.draggable) {=0A=
			self._makeDraggable();=0A=
		}=0A=
		if (options.resizable && $.fn.resizable) {=0A=
			self._makeResizable();=0A=
		}=0A=
=0A=
		self._createButtons(options.buttons);=0A=
		self._isOpen =3D false;=0A=
=0A=
		if ($.fn.bgiframe) {=0A=
			uiDialog.bgiframe();=0A=
		}=0A=
	},=0A=
=0A=
	_init: function() {=0A=
		if ( this.options.autoOpen ) {=0A=
			this.open();=0A=
		}=0A=
	},=0A=
=0A=
	destroy: function() {=0A=
		var self =3D this;=0A=
		=0A=
		if (self.overlay) {=0A=
			self.overlay.destroy();=0A=
		}=0A=
		self.uiDialog.hide();=0A=
		self.element=0A=
			.unbind('.dialog')=0A=
			.removeData('dialog')=0A=
			.removeClass('ui-dialog-content ui-widget-content')=0A=
			.hide().appendTo('body');=0A=
		self.uiDialog.remove();=0A=
=0A=
		if (self.originalTitle) {=0A=
			self.element.attr('title', self.originalTitle);=0A=
		}=0A=
=0A=
		return self;=0A=
	},=0A=
=0A=
	widget: function() {=0A=
		return this.uiDialog;=0A=
	},=0A=
=0A=
	close: function(event) {=0A=
		var self =3D this,=0A=
			maxZ, thisZ;=0A=
		=0A=
		if (false =3D=3D=3D self._trigger('beforeClose', event)) {=0A=
			return;=0A=
		}=0A=
=0A=
		if (self.overlay) {=0A=
			self.overlay.destroy();=0A=
		}=0A=
		self.uiDialog.unbind('keypress.ui-dialog');=0A=
=0A=
		self._isOpen =3D false;=0A=
=0A=
		if (self.options.hide) {=0A=
			self.uiDialog.hide(self.options.hide, function() {=0A=
				self._trigger('close', event);=0A=
			});=0A=
		} else {=0A=
			self.uiDialog.hide();=0A=
			self._trigger('close', event);=0A=
		}=0A=
=0A=
		$.ui.dialog.overlay.resize();=0A=
=0A=
		// adjust the maxZ to allow other modal dialogs to continue to work =
(see #4309)=0A=
		if (self.options.modal) {=0A=
			maxZ =3D 0;=0A=
			$('.ui-dialog').each(function() {=0A=
				if (this !=3D=3D self.uiDialog[0]) {=0A=
					thisZ =3D $(this).css('z-index');=0A=
					if(!isNaN(thisZ)) {=0A=
						maxZ =3D Math.max(maxZ, thisZ);=0A=
					}=0A=
				}=0A=
			});=0A=
			$.ui.dialog.maxZ =3D maxZ;=0A=
		}=0A=
=0A=
		return self;=0A=
	},=0A=
=0A=
	isOpen: function() {=0A=
		return this._isOpen;=0A=
	},=0A=
=0A=
	// the force parameter allows us to move modal dialogs to their correct=0A=
	// position on open=0A=
	moveToTop: function(force, event) {=0A=
		var self =3D this,=0A=
			options =3D self.options,=0A=
			saveScroll;=0A=
=0A=
		if ((options.modal && !force) ||=0A=
			(!options.stack && !options.modal)) {=0A=
			return self._trigger('focus', event);=0A=
		}=0A=
=0A=
		if (options.zIndex > $.ui.dialog.maxZ) {=0A=
			$.ui.dialog.maxZ =3D options.zIndex;=0A=
		}=0A=
		if (self.overlay) {=0A=
			$.ui.dialog.maxZ +=3D 1;=0A=
			self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ =3D =
$.ui.dialog.maxZ);=0A=
		}=0A=
=0A=
		//Save and then restore scroll since Opera 9.5+ resets when parent =
z-Index is changed.=0A=
		//  http://ui.jquery.com/bugs/ticket/3193=0A=
		saveScroll =3D { scrollTop: self.element.attr('scrollTop'), =
scrollLeft: self.element.attr('scrollLeft') };=0A=
		$.ui.dialog.maxZ +=3D 1;=0A=
		self.uiDialog.css('z-index', $.ui.dialog.maxZ);=0A=
		self.element.attr(saveScroll);=0A=
		self._trigger('focus', event);=0A=
=0A=
		return self;=0A=
	},=0A=
=0A=
	open: function() {=0A=
		if (this._isOpen) { return; }=0A=
=0A=
		var self =3D this,=0A=
			options =3D self.options,=0A=
			uiDialog =3D self.uiDialog;=0A=
=0A=
		self.overlay =3D options.modal ? new $.ui.dialog.overlay(self) : null;=0A=
		self._size();=0A=
		self._position(options.position);=0A=
		uiDialog.show(options.show);=0A=
		self.moveToTop(true);=0A=
=0A=
		// prevent tabbing out of modal dialogs=0A=
		if (options.modal) {=0A=
			uiDialog.bind('keypress.ui-dialog', function(event) {=0A=
				if (event.keyCode !=3D=3D $.ui.keyCode.TAB) {=0A=
					return;=0A=
				}=0A=
=0A=
				var tabbables =3D $(':tabbable', this),=0A=
					first =3D tabbables.filter(':first'),=0A=
					last  =3D tabbables.filter(':last');=0A=
=0A=
				if (event.target =3D=3D=3D last[0] && !event.shiftKey) {=0A=
					first.focus(1);=0A=
					return false;=0A=
				} else if (event.target =3D=3D=3D first[0] && event.shiftKey) {=0A=
					last.focus(1);=0A=
					return false;=0A=
				}=0A=
			});=0A=
		}=0A=
=0A=
		// set focus to the first tabbable element in the content area or the =
first button=0A=
		// if there are no tabbable elements, set focus on the dialog itself=0A=
		$(self.element.find(':tabbable').get().concat(=0A=
			uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(=0A=
				uiDialog.get()))).eq(0).focus();=0A=
=0A=
		self._isOpen =3D true;=0A=
		self._trigger('open');=0A=
=0A=
		return self;=0A=
	},=0A=
=0A=
	_createButtons: function(buttons) {=0A=
		var self =3D this,=0A=
			hasButtons =3D false,=0A=
			uiDialogButtonPane =3D $('<div></div>')=0A=
				.addClass(=0A=
					'ui-dialog-buttonpane ' +=0A=
					'ui-widget-content ' +=0A=
					'ui-helper-clearfix'=0A=
				),=0A=
			uiButtonSet =3D $( "<div></div>" )=0A=
				.addClass( "ui-dialog-buttonset" )=0A=
				.appendTo( uiDialogButtonPane );=0A=
=0A=
		// if we already have a button pane, remove it=0A=
		self.uiDialog.find('.ui-dialog-buttonpane').remove();=0A=
=0A=
		if (typeof buttons =3D=3D=3D 'object' && buttons !=3D=3D null) {=0A=
			$.each(buttons, function() {=0A=
				return !(hasButtons =3D true);=0A=
			});=0A=
		}=0A=
		if (hasButtons) {=0A=
			$.each(buttons, function(name, props) {=0A=
				props =3D $.isFunction( props ) ?=0A=
					{ click: props, text: name } :=0A=
					props;=0A=
				var button =3D $('<button type=3D"button"></button>')=0A=
					.click(function() {=0A=
						props.click.apply(self.element[0], arguments);=0A=
					})=0A=
					.appendTo(uiButtonSet);=0A=
				// can't use .attr( props, true ) with jQuery 1.3.2.=0A=
				$.each( props, function( key, value ) {=0A=
					if ( key =3D=3D=3D "click" ) {=0A=
						return;=0A=
					}=0A=
					if ( key in attrFn ) {=0A=
						button[ key ]( value );=0A=
					} else {=0A=
						button.attr( key, value );=0A=
					}=0A=
				});=0A=
				if ($.fn.button) {=0A=
					button.button();=0A=
				}=0A=
			});=0A=
			uiDialogButtonPane.appendTo(self.uiDialog);=0A=
		}=0A=
	},=0A=
=0A=
	_makeDraggable: function() {=0A=
		var self =3D this,=0A=
			options =3D self.options,=0A=
			doc =3D $(document),=0A=
			heightBeforeDrag;=0A=
=0A=
		function filteredUi(ui) {=0A=
			return {=0A=
				position: ui.position,=0A=
				offset: ui.offset=0A=
			};=0A=
		}=0A=
=0A=
		self.uiDialog.draggable({=0A=
			cancel: '.ui-dialog-content, .ui-dialog-titlebar-close',=0A=
			handle: '.ui-dialog-titlebar',=0A=
			containment: 'document',=0A=
			start: function(event, ui) {=0A=
				heightBeforeDrag =3D options.height =3D=3D=3D "auto" ? "auto" : =
$(this).height();=0A=
				$(this).height($(this).height()).addClass("ui-dialog-dragging");=0A=
				self._trigger('dragStart', event, filteredUi(ui));=0A=
			},=0A=
			drag: function(event, ui) {=0A=
				self._trigger('drag', event, filteredUi(ui));=0A=
			},=0A=
			stop: function(event, ui) {=0A=
				options.position =3D [ui.position.left - doc.scrollLeft(),=0A=
					ui.position.top - doc.scrollTop()];=0A=
				$(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);=0A=
				self._trigger('dragStop', event, filteredUi(ui));=0A=
				$.ui.dialog.overlay.resize();=0A=
			}=0A=
		});=0A=
	},=0A=
=0A=
	_makeResizable: function(handles) {=0A=
		handles =3D (handles =3D=3D=3D undefined ? this.options.resizable : =
handles);=0A=
		var self =3D this,=0A=
			options =3D self.options,=0A=
			// .ui-resizable has position: relative defined in the stylesheet=0A=
			// but dialogs have to use absolute or fixed positioning=0A=
			position =3D self.uiDialog.css('position'),=0A=
			resizeHandles =3D (typeof handles =3D=3D=3D 'string' ?=0A=
				handles	:=0A=
				'n,e,s,w,se,sw,ne,nw'=0A=
			);=0A=
=0A=
		function filteredUi(ui) {=0A=
			return {=0A=
				originalPosition: ui.originalPosition,=0A=
				originalSize: ui.originalSize,=0A=
				position: ui.position,=0A=
				size: ui.size=0A=
			};=0A=
		}=0A=
=0A=
		self.uiDialog.resizable({=0A=
			cancel: '.ui-dialog-content',=0A=
			containment: 'document',=0A=
			alsoResize: self.element,=0A=
			maxWidth: options.maxWidth,=0A=
			maxHeight: options.maxHeight,=0A=
			minWidth: options.minWidth,=0A=
			minHeight: self._minHeight(),=0A=
			handles: resizeHandles,=0A=
			start: function(event, ui) {=0A=
				$(this).addClass("ui-dialog-resizing");=0A=
				self._trigger('resizeStart', event, filteredUi(ui));=0A=
			},=0A=
			resize: function(event, ui) {=0A=
				self._trigger('resize', event, filteredUi(ui));=0A=
			},=0A=
			stop: function(event, ui) {=0A=
				$(this).removeClass("ui-dialog-resizing");=0A=
				options.height =3D $(this).height();=0A=
				options.width =3D $(this).width();=0A=
				self._trigger('resizeStop', event, filteredUi(ui));=0A=
				$.ui.dialog.overlay.resize();=0A=
			}=0A=
		})=0A=
		.css('position', position)=0A=
		.find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');=0A=
	},=0A=
=0A=
	_minHeight: function() {=0A=
		var options =3D this.options;=0A=
=0A=
		if (options.height =3D=3D=3D 'auto') {=0A=
			return options.minHeight;=0A=
		} else {=0A=
			return Math.min(options.minHeight, options.height);=0A=
		}=0A=
	},=0A=
=0A=
	_position: function(position) {=0A=
		var myAt =3D [],=0A=
			offset =3D [0, 0],=0A=
			isVisible;=0A=
=0A=
		if (position) {=0A=
			// deep extending converts arrays to objects in jQuery <=3D 1.3.2 :-(=0A=
	//		if (typeof position =3D=3D 'string' || $.isArray(position)) {=0A=
	//			myAt =3D $.isArray(position) ? position : position.split(' ');=0A=
=0A=
			if (typeof position =3D=3D=3D 'string' || (typeof position =3D=3D=3D =
'object' && '0' in position)) {=0A=
				myAt =3D position.split ? position.split(' ') : [position[0], =
position[1]];=0A=
				if (myAt.length =3D=3D=3D 1) {=0A=
					myAt[1] =3D myAt[0];=0A=
				}=0A=
=0A=
				$.each(['left', 'top'], function(i, offsetPosition) {=0A=
					if (+myAt[i] =3D=3D=3D myAt[i]) {=0A=
						offset[i] =3D myAt[i];=0A=
						myAt[i] =3D offsetPosition;=0A=
					}=0A=
				});=0A=
=0A=
				position =3D {=0A=
					my: myAt.join(" "),=0A=
					at: myAt.join(" "),=0A=
					offset: offset.join(" ")=0A=
				};=0A=
			} =0A=
=0A=
			position =3D $.extend({}, $.ui.dialog.prototype.options.position, =
position);=0A=
		} else {=0A=
			position =3D $.ui.dialog.prototype.options.position;=0A=
		}=0A=
=0A=
		// need to show the dialog to get the actual offset in the position =
plugin=0A=
		isVisible =3D this.uiDialog.is(':visible');=0A=
		if (!isVisible) {=0A=
			this.uiDialog.show();=0A=
		}=0A=
		this.uiDialog=0A=
			// workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781=0A=
			.css({ top: 0, left: 0 })=0A=
			.position($.extend({ of: window }, position));=0A=
		if (!isVisible) {=0A=
			this.uiDialog.hide();=0A=
		}=0A=
	},=0A=
=0A=
	_setOptions: function( options ) {=0A=
		var self =3D this,=0A=
			resizableOptions =3D {},=0A=
			resize =3D false;=0A=
=0A=
		$.each( options, function( key, value ) {=0A=
			self._setOption( key, value );=0A=
			=0A=
			if ( key in sizeRelatedOptions ) {=0A=
				resize =3D true;=0A=
			}=0A=
			if ( key in resizableRelatedOptions ) {=0A=
				resizableOptions[ key ] =3D value;=0A=
			}=0A=
		});=0A=
=0A=
		if ( resize ) {=0A=
			this._size();=0A=
		}=0A=
		if ( this.uiDialog.is( ":data(resizable)" ) ) {=0A=
			this.uiDialog.resizable( "option", resizableOptions );=0A=
		}=0A=
	},=0A=
=0A=
	_setOption: function(key, value){=0A=
		var self =3D this,=0A=
			uiDialog =3D self.uiDialog;=0A=
=0A=
		switch (key) {=0A=
			//handling of deprecated beforeclose (vs beforeClose) option=0A=
			//Ticket #4669 http://dev.jqueryui.com/ticket/4669=0A=
			//TODO: remove in 1.9pre=0A=
			case "beforeclose":=0A=
				key =3D "beforeClose";=0A=
				break;=0A=
			case "buttons":=0A=
				self._createButtons(value);=0A=
				break;=0A=
			case "closeText":=0A=
				// ensure that we always pass a string=0A=
				self.uiDialogTitlebarCloseText.text("" + value);=0A=
				break;=0A=
			case "dialogClass":=0A=
				uiDialog=0A=
					.removeClass(self.options.dialogClass)=0A=
					.addClass(uiDialogClasses + value);=0A=
				break;=0A=
			case "disabled":=0A=
				if (value) {=0A=
					uiDialog.addClass('ui-dialog-disabled');=0A=
				} else {=0A=
					uiDialog.removeClass('ui-dialog-disabled');=0A=
				}=0A=
				break;=0A=
			case "draggable":=0A=
				var isDraggable =3D uiDialog.is( ":data(draggable)" );=0A=
				if ( isDraggable && !value ) {=0A=
					uiDialog.draggable( "destroy" );=0A=
				}=0A=
				=0A=
				if ( !isDraggable && value ) {=0A=
					self._makeDraggable();=0A=
				}=0A=
				break;=0A=
			case "position":=0A=
				self._position(value);=0A=
				break;=0A=
			case "resizable":=0A=
				// currently resizable, becoming non-resizable=0A=
				var isResizable =3D uiDialog.is( ":data(resizable)" );=0A=
				if (isResizable && !value) {=0A=
					uiDialog.resizable('destroy');=0A=
				}=0A=
=0A=
				// currently resizable, changing handles=0A=
				if (isResizable && typeof value =3D=3D=3D 'string') {=0A=
					uiDialog.resizable('option', 'handles', value);=0A=
				}=0A=
=0A=
				// currently non-resizable, becoming resizable=0A=
				if (!isResizable && value !=3D=3D false) {=0A=
					self._makeResizable(value);=0A=
				}=0A=
				break;=0A=
			case "title":=0A=
				// convert whatever was passed in o a string, for html() to not =
throw up=0A=
				$(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || =
'&#160;'));=0A=
				break;=0A=
		}=0A=
=0A=
		$.Widget.prototype._setOption.apply(self, arguments);=0A=
	},=0A=
=0A=
	_size: function() {=0A=
		/* If the user has resized the dialog, the .ui-dialog and =
.ui-dialog-content=0A=
		 * divs will both have width and height set, so we need to reset them=0A=
		 */=0A=
		var options =3D this.options,=0A=
			nonContentHeight,=0A=
			minContentHeight,=0A=
			isVisible =3D this.uiDialog.is( ":visible" );=0A=
=0A=
		// reset content sizing=0A=
		this.element.show().css({=0A=
			width: 'auto',=0A=
			minHeight: 0,=0A=
			height: 0=0A=
		});=0A=
=0A=
		if (options.minWidth > options.width) {=0A=
			options.width =3D options.minWidth;=0A=
		}=0A=
=0A=
		// reset wrapper sizing=0A=
		// determine the height of all the non-content elements=0A=
		nonContentHeight =3D this.uiDialog.css({=0A=
				height: 'auto',=0A=
				width: options.width=0A=
			})=0A=
			.height();=0A=
		minContentHeight =3D Math.max( 0, options.minHeight - nonContentHeight =
);=0A=
		=0A=
		if ( options.height =3D=3D=3D "auto" ) {=0A=
			// only needed for IE6 support=0A=
			if ( $.support.minHeight ) {=0A=
				this.element.css({=0A=
					minHeight: minContentHeight,=0A=
					height: "auto"=0A=
				});=0A=
			} else {=0A=
				this.uiDialog.show();=0A=
				var autoHeight =3D this.element.css( "height", "auto" ).height();=0A=
				if ( !isVisible ) {=0A=
					this.uiDialog.hide();=0A=
				}=0A=
				this.element.height( Math.max( autoHeight, minContentHeight ) );=0A=
			}=0A=
		} else {=0A=
			this.element.height( Math.max( options.height - nonContentHeight, 0 ) =
);=0A=
		}=0A=
=0A=
		if (this.uiDialog.is(':data(resizable)')) {=0A=
			this.uiDialog.resizable('option', 'minHeight', this._minHeight());=0A=
		}=0A=
	}=0A=
});=0A=
=0A=
$.extend($.ui.dialog, {=0A=
	version: "1.8.13",=0A=
=0A=
	uuid: 0,=0A=
	maxZ: 0,=0A=
=0A=
	getTitleId: function($el) {=0A=
		var id =3D $el.attr('id');=0A=
		if (!id) {=0A=
			this.uuid +=3D 1;=0A=
			id =3D this.uuid;=0A=
		}=0A=
		return 'ui-dialog-title-' + id;=0A=
	},=0A=
=0A=
	overlay: function(dialog) {=0A=
		this.$el =3D $.ui.dialog.overlay.create(dialog);=0A=
	}=0A=
});=0A=
=0A=
$.extend($.ui.dialog.overlay, {=0A=
	instances: [],=0A=
	// reuse old instances due to IE memory leak with alpha transparency =
(see #5185)=0A=
	oldInstances: [],=0A=
	maxZ: 0,=0A=
	events: =
$.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),=0A=
		function(event) { return event + '.dialog-overlay'; }).join(' '),=0A=
	create: function(dialog) {=0A=
		if (this.instances.length =3D=3D=3D 0) {=0A=
			// prevent use of anchors and inputs=0A=
			// we use a setTimeout in case the overlay is created from an=0A=
			// event that we're going to be cancelling (see #2804)=0A=
			setTimeout(function() {=0A=
				// handle $(el).dialog().dialog('close') (see #4065)=0A=
				if ($.ui.dialog.overlay.instances.length) {=0A=
					$(document).bind($.ui.dialog.overlay.events, function(event) {=0A=
						// stop events if the z-index of the target is < the z-index of =
the overlay=0A=
						// we cannot return true when we don't want to cancel the event =
(#3523)=0A=
						if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) {=0A=
							return false;=0A=
						}=0A=
					});=0A=
				}=0A=
			}, 1);=0A=
=0A=
			// allow closing by pressing the escape key=0A=
			$(document).bind('keydown.dialog-overlay', function(event) {=0A=
				if (dialog.options.closeOnEscape && event.keyCode &&=0A=
					event.keyCode =3D=3D=3D $.ui.keyCode.ESCAPE) {=0A=
					=0A=
					dialog.close(event);=0A=
					event.preventDefault();=0A=
				}=0A=
			});=0A=
=0A=
			// handle window resize=0A=
			$(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);=0A=
		}=0A=
=0A=
		var $el =3D (this.oldInstances.pop() || =
$('<div></div>').addClass('ui-widget-overlay'))=0A=
			.appendTo(document.body)=0A=
			.css({=0A=
				width: this.width(),=0A=
				height: this.height()=0A=
			});=0A=
=0A=
		if ($.fn.bgiframe) {=0A=
			$el.bgiframe();=0A=
		}=0A=
=0A=
		this.instances.push($el);=0A=
		return $el;=0A=
	},=0A=
=0A=
	destroy: function($el) {=0A=
		var indexOf =3D $.inArray($el, this.instances);=0A=
		if (indexOf !=3D -1){=0A=
			this.oldInstances.push(this.instances.splice(indexOf, 1)[0]);=0A=
		}=0A=
=0A=
		if (this.instances.length =3D=3D=3D 0) {=0A=
			$([document, window]).unbind('.dialog-overlay');=0A=
		}=0A=
=0A=
		$el.remove();=0A=
		=0A=
		// adjust the maxZ to allow other modal dialogs to continue to work =
(see #4309)=0A=
		var maxZ =3D 0;=0A=
		$.each(this.instances, function() {=0A=
			maxZ =3D Math.max(maxZ, this.css('z-index'));=0A=
		});=0A=
		this.maxZ =3D maxZ;=0A=
	},=0A=
=0A=
	height: function() {=0A=
		var scrollHeight,=0A=
			offsetHeight;=0A=
		// handle IE 6=0A=
		if ($.browser.msie && $.browser.version < 7) {=0A=
			scrollHeight =3D Math.max(=0A=
				document.documentElement.scrollHeight,=0A=
				document.body.scrollHeight=0A=
			);=0A=
			offsetHeight =3D Math.max(=0A=
				document.documentElement.offsetHeight,=0A=
				document.body.offsetHeight=0A=
			);=0A=
=0A=
			if (scrollHeight < offsetHeight) {=0A=
				return $(window).height() + 'px';=0A=
			} else {=0A=
				return scrollHeight + 'px';=0A=
			}=0A=
		// handle "good" browsers=0A=
		} else {=0A=
			return $(document).height() + 'px';=0A=
		}=0A=
	},=0A=
=0A=
	width: function() {=0A=
		var scrollWidth,=0A=
			offsetWidth;=0A=
		// handle IE 6=0A=
		if ($.browser.msie && $.browser.version < 7) {=0A=
			scrollWidth =3D Math.max(=0A=
				document.documentElement.scrollWidth,=0A=
				document.body.scrollWidth=0A=
			);=0A=
			offsetWidth =3D Math.max(=0A=
				document.documentElement.offsetWidth,=0A=
				document.body.offsetWidth=0A=
			);=0A=
=0A=
			if (scrollWidth < offsetWidth) {=0A=
				return $(window).width() + 'px';=0A=
			} else {=0A=
				return scrollWidth + 'px';=0A=
			}=0A=
		// handle "good" browsers=0A=
		} else {=0A=
			return $(document).width() + 'px';=0A=
		}=0A=
	},=0A=
=0A=
	resize: function() {=0A=
		/* If the dialog is draggable and the user drags it past the=0A=
		 * right edge of the window, the document becomes wider so we=0A=
		 * need to stretch the overlay. If the user then drags the=0A=
		 * dialog back to the left, the document will become narrower,=0A=
		 * so we need to shrink the overlay to the appropriate size.=0A=
		 * This is handled by shrinking the overlay before setting it=0A=
		 * to the full document size.=0A=
		 */=0A=
		var $overlays =3D $([]);=0A=
		$.each($.ui.dialog.overlay.instances, function() {=0A=
			$overlays =3D $overlays.add(this);=0A=
		});=0A=
=0A=
		$overlays.css({=0A=
			width: 0,=0A=
			height: 0=0A=
		}).css({=0A=
			width: $.ui.dialog.overlay.width(),=0A=
			height: $.ui.dialog.overlay.height()=0A=
		});=0A=
	}=0A=
});=0A=
=0A=
$.extend($.ui.dialog.overlay.prototype, {=0A=
	destroy: function() {=0A=
		$.ui.dialog.overlay.destroy(this.$el);=0A=
	}=0A=
});=0A=
=0A=
}(jQuery));=0A=
/*=0A=
 * jQuery UI Slider 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Slider=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.ui.core.js=0A=
 *	jquery.ui.mouse.js=0A=
 *	jquery.ui.widget.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
// number of pages in a slider=0A=
// (how many times can you page up/down to go through the whole range)=0A=
var numPages =3D 5;=0A=
=0A=
$.widget( "ui.slider", $.ui.mouse, {=0A=
=0A=
	widgetEventPrefix: "slide",=0A=
=0A=
	options: {=0A=
		animate: false,=0A=
		distance: 0,=0A=
		max: 100,=0A=
		min: 0,=0A=
		orientation: "horizontal",=0A=
		range: false,=0A=
		step: 1,=0A=
		value: 0,=0A=
		values: null=0A=
	},=0A=
=0A=
	_create: function() {=0A=
		var self =3D this,=0A=
			o =3D this.options,=0A=
			existingHandles =3D this.element.find( ".ui-slider-handle" =
).addClass( "ui-state-default ui-corner-all" ),=0A=
			handle =3D "<a class=3D'ui-slider-handle ui-state-default =
ui-corner-all' href=3D'#'></a>",=0A=
			handleCount =3D ( o.values && o.values.length ) || 1,=0A=
			handles =3D [];=0A=
=0A=
		this._keySliding =3D false;=0A=
		this._mouseSliding =3D false;=0A=
		this._animateOff =3D true;=0A=
		this._handleIndex =3D null;=0A=
		this._detectOrientation();=0A=
		this._mouseInit();=0A=
=0A=
		this.element=0A=
			.addClass( "ui-slider" +=0A=
				" ui-slider-" + this.orientation +=0A=
				" ui-widget" +=0A=
				" ui-widget-content" +=0A=
				" ui-corner-all" +=0A=
				( o.disabled ? " ui-slider-disabled ui-disabled" : "" ) );=0A=
=0A=
		this.range =3D $([]);=0A=
=0A=
		if ( o.range ) {=0A=
			if ( o.range =3D=3D=3D true ) {=0A=
				if ( !o.values ) {=0A=
					o.values =3D [ this._valueMin(), this._valueMin() ];=0A=
				}=0A=
				if ( o.values.length && o.values.length !=3D=3D 2 ) {=0A=
					o.values =3D [ o.values[0], o.values[0] ];=0A=
				}=0A=
			}=0A=
=0A=
			this.range =3D $( "<div></div>" )=0A=
				.appendTo( this.element )=0A=
				.addClass( "ui-slider-range" +=0A=
				// note: this isn't the most fittingly semantic framework class for =
this element,=0A=
				// but worked best visually with a variety of themes=0A=
				" ui-widget-header" + =0A=
				( ( o.range =3D=3D=3D "min" || o.range =3D=3D=3D "max" ) ? " =
ui-slider-range-" + o.range : "" ) );=0A=
		}=0A=
=0A=
		for ( var i =3D existingHandles.length; i < handleCount; i +=3D 1 ) {=0A=
			handles.push( handle );=0A=
		}=0A=
=0A=
		this.handles =3D existingHandles.add( $( handles.join( "" ) =
).appendTo( self.element ) );=0A=
=0A=
		this.handle =3D this.handles.eq( 0 );=0A=
=0A=
		this.handles.add( this.range ).filter( "a" )=0A=
			.click(function( event ) {=0A=
				event.preventDefault();=0A=
			})=0A=
			.hover(function() {=0A=
				if ( !o.disabled ) {=0A=
					$( this ).addClass( "ui-state-hover" );=0A=
				}=0A=
			}, function() {=0A=
				$( this ).removeClass( "ui-state-hover" );=0A=
			})=0A=
			.focus(function() {=0A=
				if ( !o.disabled ) {=0A=
					$( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" );=0A=
					$( this ).addClass( "ui-state-focus" );=0A=
				} else {=0A=
					$( this ).blur();=0A=
				}=0A=
			})=0A=
			.blur(function() {=0A=
				$( this ).removeClass( "ui-state-focus" );=0A=
			});=0A=
=0A=
		this.handles.each(function( i ) {=0A=
			$( this ).data( "index.ui-slider-handle", i );=0A=
		});=0A=
=0A=
		this.handles=0A=
			.keydown(function( event ) {=0A=
				var ret =3D true,=0A=
					index =3D $( this ).data( "index.ui-slider-handle" ),=0A=
					allowed,=0A=
					curVal,=0A=
					newVal,=0A=
					step;=0A=
	=0A=
				if ( self.options.disabled ) {=0A=
					return;=0A=
				}=0A=
	=0A=
				switch ( event.keyCode ) {=0A=
					case $.ui.keyCode.HOME:=0A=
					case $.ui.keyCode.END:=0A=
					case $.ui.keyCode.PAGE_UP:=0A=
					case $.ui.keyCode.PAGE_DOWN:=0A=
					case $.ui.keyCode.UP:=0A=
					case $.ui.keyCode.RIGHT:=0A=
					case $.ui.keyCode.DOWN:=0A=
					case $.ui.keyCode.LEFT:=0A=
						ret =3D false;=0A=
						if ( !self._keySliding ) {=0A=
							self._keySliding =3D true;=0A=
							$( this ).addClass( "ui-state-active" );=0A=
							allowed =3D self._start( event, index );=0A=
							if ( allowed =3D=3D=3D false ) {=0A=
								return;=0A=
							}=0A=
						}=0A=
						break;=0A=
				}=0A=
	=0A=
				step =3D self.options.step;=0A=
				if ( self.options.values && self.options.values.length ) {=0A=
					curVal =3D newVal =3D self.values( index );=0A=
				} else {=0A=
					curVal =3D newVal =3D self.value();=0A=
				}=0A=
	=0A=
				switch ( event.keyCode ) {=0A=
					case $.ui.keyCode.HOME:=0A=
						newVal =3D self._valueMin();=0A=
						break;=0A=
					case $.ui.keyCode.END:=0A=
						newVal =3D self._valueMax();=0A=
						break;=0A=
					case $.ui.keyCode.PAGE_UP:=0A=
						newVal =3D self._trimAlignValue( curVal + ( (self._valueMax() - =
self._valueMin()) / numPages ) );=0A=
						break;=0A=
					case $.ui.keyCode.PAGE_DOWN:=0A=
						newVal =3D self._trimAlignValue( curVal - ( (self._valueMax() - =
self._valueMin()) / numPages ) );=0A=
						break;=0A=
					case $.ui.keyCode.UP:=0A=
					case $.ui.keyCode.RIGHT:=0A=
						if ( curVal =3D=3D=3D self._valueMax() ) {=0A=
							return;=0A=
						}=0A=
						newVal =3D self._trimAlignValue( curVal + step );=0A=
						break;=0A=
					case $.ui.keyCode.DOWN:=0A=
					case $.ui.keyCode.LEFT:=0A=
						if ( curVal =3D=3D=3D self._valueMin() ) {=0A=
							return;=0A=
						}=0A=
						newVal =3D self._trimAlignValue( curVal - step );=0A=
						break;=0A=
				}=0A=
	=0A=
				self._slide( event, index, newVal );=0A=
	=0A=
				return ret;=0A=
	=0A=
			})=0A=
			.keyup(function( event ) {=0A=
				var index =3D $( this ).data( "index.ui-slider-handle" );=0A=
	=0A=
				if ( self._keySliding ) {=0A=
					self._keySliding =3D false;=0A=
					self._stop( event, index );=0A=
					self._change( event, index );=0A=
					$( this ).removeClass( "ui-state-active" );=0A=
				}=0A=
	=0A=
			});=0A=
=0A=
		this._refreshValue();=0A=
=0A=
		this._animateOff =3D false;=0A=
	},=0A=
=0A=
	destroy: function() {=0A=
		this.handles.remove();=0A=
		this.range.remove();=0A=
=0A=
		this.element=0A=
			.removeClass( "ui-slider" +=0A=
				" ui-slider-horizontal" +=0A=
				" ui-slider-vertical" +=0A=
				" ui-slider-disabled" +=0A=
				" ui-widget" +=0A=
				" ui-widget-content" +=0A=
				" ui-corner-all" )=0A=
			.removeData( "slider" )=0A=
			.unbind( ".slider" );=0A=
=0A=
		this._mouseDestroy();=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	_mouseCapture: function( event ) {=0A=
		var o =3D this.options,=0A=
			position,=0A=
			normValue,=0A=
			distance,=0A=
			closestHandle,=0A=
			self,=0A=
			index,=0A=
			allowed,=0A=
			offset,=0A=
			mouseOverHandle;=0A=
=0A=
		if ( o.disabled ) {=0A=
			return false;=0A=
		}=0A=
=0A=
		this.elementSize =3D {=0A=
			width: this.element.outerWidth(),=0A=
			height: this.element.outerHeight()=0A=
		};=0A=
		this.elementOffset =3D this.element.offset();=0A=
=0A=
		position =3D { x: event.pageX, y: event.pageY };=0A=
		normValue =3D this._normValueFromMouse( position );=0A=
		distance =3D this._valueMax() - this._valueMin() + 1;=0A=
		self =3D this;=0A=
		this.handles.each(function( i ) {=0A=
			var thisDistance =3D Math.abs( normValue - self.values(i) );=0A=
			if ( distance > thisDistance ) {=0A=
				distance =3D thisDistance;=0A=
				closestHandle =3D $( this );=0A=
				index =3D i;=0A=
			}=0A=
		});=0A=
=0A=
		// workaround for bug #3736 (if both handles of a range are at 0,=0A=
		// the first is always used as the one with least distance,=0A=
		// and moving it is obviously prevented by preventing negative ranges)=0A=
		if( o.range =3D=3D=3D true && this.values(1) =3D=3D=3D o.min ) {=0A=
			index +=3D 1;=0A=
			closestHandle =3D $( this.handles[index] );=0A=
		}=0A=
=0A=
		allowed =3D this._start( event, index );=0A=
		if ( allowed =3D=3D=3D false ) {=0A=
			return false;=0A=
		}=0A=
		this._mouseSliding =3D true;=0A=
=0A=
		self._handleIndex =3D index;=0A=
=0A=
		closestHandle=0A=
			.addClass( "ui-state-active" )=0A=
			.focus();=0A=
		=0A=
		offset =3D closestHandle.offset();=0A=
		mouseOverHandle =3D !$( event.target ).parents().andSelf().is( =
".ui-slider-handle" );=0A=
		this._clickOffset =3D mouseOverHandle ? { left: 0, top: 0 } : {=0A=
			left: event.pageX - offset.left - ( closestHandle.width() / 2 ),=0A=
			top: event.pageY - offset.top -=0A=
				( closestHandle.height() / 2 ) -=0A=
				( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) -=0A=
				( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) +=0A=
				( parseInt( closestHandle.css("marginTop"), 10 ) || 0)=0A=
		};=0A=
=0A=
		if ( !this.handles.hasClass( "ui-state-hover" ) ) {=0A=
			this._slide( event, index, normValue );=0A=
		}=0A=
		this._animateOff =3D true;=0A=
		return true;=0A=
	},=0A=
=0A=
	_mouseStart: function( event ) {=0A=
		return true;=0A=
	},=0A=
=0A=
	_mouseDrag: function( event ) {=0A=
		var position =3D { x: event.pageX, y: event.pageY },=0A=
			normValue =3D this._normValueFromMouse( position );=0A=
		=0A=
		this._slide( event, this._handleIndex, normValue );=0A=
=0A=
		return false;=0A=
	},=0A=
=0A=
	_mouseStop: function( event ) {=0A=
		this.handles.removeClass( "ui-state-active" );=0A=
		this._mouseSliding =3D false;=0A=
=0A=
		this._stop( event, this._handleIndex );=0A=
		this._change( event, this._handleIndex );=0A=
=0A=
		this._handleIndex =3D null;=0A=
		this._clickOffset =3D null;=0A=
		this._animateOff =3D false;=0A=
=0A=
		return false;=0A=
	},=0A=
	=0A=
	_detectOrientation: function() {=0A=
		this.orientation =3D ( this.options.orientation =3D=3D=3D "vertical" ) =
? "vertical" : "horizontal";=0A=
	},=0A=
=0A=
	_normValueFromMouse: function( position ) {=0A=
		var pixelTotal,=0A=
			pixelMouse,=0A=
			percentMouse,=0A=
			valueTotal,=0A=
			valueMouse;=0A=
=0A=
		if ( this.orientation =3D=3D=3D "horizontal" ) {=0A=
			pixelTotal =3D this.elementSize.width;=0A=
			pixelMouse =3D position.x - this.elementOffset.left - ( =
this._clickOffset ? this._clickOffset.left : 0 );=0A=
		} else {=0A=
			pixelTotal =3D this.elementSize.height;=0A=
			pixelMouse =3D position.y - this.elementOffset.top - ( =
this._clickOffset ? this._clickOffset.top : 0 );=0A=
		}=0A=
=0A=
		percentMouse =3D ( pixelMouse / pixelTotal );=0A=
		if ( percentMouse > 1 ) {=0A=
			percentMouse =3D 1;=0A=
		}=0A=
		if ( percentMouse < 0 ) {=0A=
			percentMouse =3D 0;=0A=
		}=0A=
		if ( this.orientation =3D=3D=3D "vertical" ) {=0A=
			percentMouse =3D 1 - percentMouse;=0A=
		}=0A=
=0A=
		valueTotal =3D this._valueMax() - this._valueMin();=0A=
		valueMouse =3D this._valueMin() + percentMouse * valueTotal;=0A=
=0A=
		return this._trimAlignValue( valueMouse );=0A=
	},=0A=
=0A=
	_start: function( event, index ) {=0A=
		var uiHash =3D {=0A=
			handle: this.handles[ index ],=0A=
			value: this.value()=0A=
		};=0A=
		if ( this.options.values && this.options.values.length ) {=0A=
			uiHash.value =3D this.values( index );=0A=
			uiHash.values =3D this.values();=0A=
		}=0A=
		return this._trigger( "start", event, uiHash );=0A=
	},=0A=
=0A=
	_slide: function( event, index, newVal ) {=0A=
		var otherVal,=0A=
			newValues,=0A=
			allowed;=0A=
=0A=
		if ( this.options.values && this.options.values.length ) {=0A=
			otherVal =3D this.values( index ? 0 : 1 );=0A=
=0A=
			if ( ( this.options.values.length =3D=3D=3D 2 && this.options.range =
=3D=3D=3D true ) && =0A=
					( ( index =3D=3D=3D 0 && newVal > otherVal) || ( index =3D=3D=3D 1 =
&& newVal < otherVal ) )=0A=
				) {=0A=
				newVal =3D otherVal;=0A=
			}=0A=
=0A=
			if ( newVal !=3D=3D this.values( index ) ) {=0A=
				newValues =3D this.values();=0A=
				newValues[ index ] =3D newVal;=0A=
				// A slide can be canceled by returning false from the slide callback=0A=
				allowed =3D this._trigger( "slide", event, {=0A=
					handle: this.handles[ index ],=0A=
					value: newVal,=0A=
					values: newValues=0A=
				} );=0A=
				otherVal =3D this.values( index ? 0 : 1 );=0A=
				if ( allowed !=3D=3D false ) {=0A=
					this.values( index, newVal, true );=0A=
				}=0A=
			}=0A=
		} else {=0A=
			if ( newVal !=3D=3D this.value() ) {=0A=
				// A slide can be canceled by returning false from the slide callback=0A=
				allowed =3D this._trigger( "slide", event, {=0A=
					handle: this.handles[ index ],=0A=
					value: newVal=0A=
				} );=0A=
				if ( allowed !=3D=3D false ) {=0A=
					this.value( newVal );=0A=
				}=0A=
			}=0A=
		}=0A=
	},=0A=
=0A=
	_stop: function( event, index ) {=0A=
		var uiHash =3D {=0A=
			handle: this.handles[ index ],=0A=
			value: this.value()=0A=
		};=0A=
		if ( this.options.values && this.options.values.length ) {=0A=
			uiHash.value =3D this.values( index );=0A=
			uiHash.values =3D this.values();=0A=
		}=0A=
=0A=
		this._trigger( "stop", event, uiHash );=0A=
	},=0A=
=0A=
	_change: function( event, index ) {=0A=
		if ( !this._keySliding && !this._mouseSliding ) {=0A=
			var uiHash =3D {=0A=
				handle: this.handles[ index ],=0A=
				value: this.value()=0A=
			};=0A=
			if ( this.options.values && this.options.values.length ) {=0A=
				uiHash.value =3D this.values( index );=0A=
				uiHash.values =3D this.values();=0A=
			}=0A=
=0A=
			this._trigger( "change", event, uiHash );=0A=
		}=0A=
	},=0A=
=0A=
	value: function( newValue ) {=0A=
		if ( arguments.length ) {=0A=
			this.options.value =3D this._trimAlignValue( newValue );=0A=
			this._refreshValue();=0A=
			this._change( null, 0 );=0A=
			return;=0A=
		}=0A=
=0A=
		return this._value();=0A=
	},=0A=
=0A=
	values: function( index, newValue ) {=0A=
		var vals,=0A=
			newValues,=0A=
			i;=0A=
=0A=
		if ( arguments.length > 1 ) {=0A=
			this.options.values[ index ] =3D this._trimAlignValue( newValue );=0A=
			this._refreshValue();=0A=
			this._change( null, index );=0A=
			return;=0A=
		}=0A=
=0A=
		if ( arguments.length ) {=0A=
			if ( $.isArray( arguments[ 0 ] ) ) {=0A=
				vals =3D this.options.values;=0A=
				newValues =3D arguments[ 0 ];=0A=
				for ( i =3D 0; i < vals.length; i +=3D 1 ) {=0A=
					vals[ i ] =3D this._trimAlignValue( newValues[ i ] );=0A=
					this._change( null, i );=0A=
				}=0A=
				this._refreshValue();=0A=
			} else {=0A=
				if ( this.options.values && this.options.values.length ) {=0A=
					return this._values( index );=0A=
				} else {=0A=
					return this.value();=0A=
				}=0A=
			}=0A=
		} else {=0A=
			return this._values();=0A=
		}=0A=
	},=0A=
=0A=
	_setOption: function( key, value ) {=0A=
		var i,=0A=
			valsLength =3D 0;=0A=
=0A=
		if ( $.isArray( this.options.values ) ) {=0A=
			valsLength =3D this.options.values.length;=0A=
		}=0A=
=0A=
		$.Widget.prototype._setOption.apply( this, arguments );=0A=
=0A=
		switch ( key ) {=0A=
			case "disabled":=0A=
				if ( value ) {=0A=
					this.handles.filter( ".ui-state-focus" ).blur();=0A=
					this.handles.removeClass( "ui-state-hover" );=0A=
					this.handles.attr( "disabled", "disabled" );=0A=
					this.element.addClass( "ui-disabled" );=0A=
				} else {=0A=
					this.handles.removeAttr( "disabled" );=0A=
					this.element.removeClass( "ui-disabled" );=0A=
				}=0A=
				break;=0A=
			case "orientation":=0A=
				this._detectOrientation();=0A=
				this.element=0A=
					.removeClass( "ui-slider-horizontal ui-slider-vertical" )=0A=
					.addClass( "ui-slider-" + this.orientation );=0A=
				this._refreshValue();=0A=
				break;=0A=
			case "value":=0A=
				this._animateOff =3D true;=0A=
				this._refreshValue();=0A=
				this._change( null, 0 );=0A=
				this._animateOff =3D false;=0A=
				break;=0A=
			case "values":=0A=
				this._animateOff =3D true;=0A=
				this._refreshValue();=0A=
				for ( i =3D 0; i < valsLength; i +=3D 1 ) {=0A=
					this._change( null, i );=0A=
				}=0A=
				this._animateOff =3D false;=0A=
				break;=0A=
		}=0A=
	},=0A=
=0A=
	//internal value getter=0A=
	// _value() returns value trimmed by min and max, aligned by step=0A=
	_value: function() {=0A=
		var val =3D this.options.value;=0A=
		val =3D this._trimAlignValue( val );=0A=
=0A=
		return val;=0A=
	},=0A=
=0A=
	//internal values getter=0A=
	// _values() returns array of values trimmed by min and max, aligned by =
step=0A=
	// _values( index ) returns single value trimmed by min and max, =
aligned by step=0A=
	_values: function( index ) {=0A=
		var val,=0A=
			vals,=0A=
			i;=0A=
=0A=
		if ( arguments.length ) {=0A=
			val =3D this.options.values[ index ];=0A=
			val =3D this._trimAlignValue( val );=0A=
=0A=
			return val;=0A=
		} else {=0A=
			// .slice() creates a copy of the array=0A=
			// this copy gets trimmed by min and max and then returned=0A=
			vals =3D this.options.values.slice();=0A=
			for ( i =3D 0; i < vals.length; i+=3D 1) {=0A=
				vals[ i ] =3D this._trimAlignValue( vals[ i ] );=0A=
			}=0A=
=0A=
			return vals;=0A=
		}=0A=
	},=0A=
	=0A=
	// returns the step-aligned value that val is closest to, between =
(inclusive) min and max=0A=
	_trimAlignValue: function( val ) {=0A=
		if ( val <=3D this._valueMin() ) {=0A=
			return this._valueMin();=0A=
		}=0A=
		if ( val >=3D this._valueMax() ) {=0A=
			return this._valueMax();=0A=
		}=0A=
		var step =3D ( this.options.step > 0 ) ? this.options.step : 1,=0A=
			valModStep =3D (val - this._valueMin()) % step;=0A=
			alignValue =3D val - valModStep;=0A=
=0A=
		if ( Math.abs(valModStep) * 2 >=3D step ) {=0A=
			alignValue +=3D ( valModStep > 0 ) ? step : ( -step );=0A=
		}=0A=
=0A=
		// Since JavaScript has problems with large floats, round=0A=
		// the final value to 5 digits after the decimal point (see #4124)=0A=
		return parseFloat( alignValue.toFixed(5) );=0A=
	},=0A=
=0A=
	_valueMin: function() {=0A=
		return this.options.min;=0A=
	},=0A=
=0A=
	_valueMax: function() {=0A=
		return this.options.max;=0A=
	},=0A=
	=0A=
	_refreshValue: function() {=0A=
		var oRange =3D this.options.range,=0A=
			o =3D this.options,=0A=
			self =3D this,=0A=
			animate =3D ( !this._animateOff ) ? o.animate : false,=0A=
			valPercent,=0A=
			_set =3D {},=0A=
			lastValPercent,=0A=
			value,=0A=
			valueMin,=0A=
			valueMax;=0A=
=0A=
		if ( this.options.values && this.options.values.length ) {=0A=
			this.handles.each(function( i, j ) {=0A=
				valPercent =3D ( self.values(i) - self._valueMin() ) / ( =
self._valueMax() - self._valueMin() ) * 100;=0A=
				_set[ self.orientation =3D=3D=3D "horizontal" ? "left" : "bottom" ] =
=3D valPercent + "%";=0A=
				$( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, =
o.animate );=0A=
				if ( self.options.range =3D=3D=3D true ) {=0A=
					if ( self.orientation =3D=3D=3D "horizontal" ) {=0A=
						if ( i =3D=3D=3D 0 ) {=0A=
							self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: =
valPercent + "%" }, o.animate );=0A=
						}=0A=
						if ( i =3D=3D=3D 1 ) {=0A=
							self.range[ animate ? "animate" : "css" ]( { width: ( valPercent =
- lastValPercent ) + "%" }, { queue: false, duration: o.animate } );=0A=
						}=0A=
					} else {=0A=
						if ( i =3D=3D=3D 0 ) {=0A=
							self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: =
( valPercent ) + "%" }, o.animate );=0A=
						}=0A=
						if ( i =3D=3D=3D 1 ) {=0A=
							self.range[ animate ? "animate" : "css" ]( { height: ( valPercent =
- lastValPercent ) + "%" }, { queue: false, duration: o.animate } );=0A=
						}=0A=
					}=0A=
				}=0A=
				lastValPercent =3D valPercent;=0A=
			});=0A=
		} else {=0A=
			value =3D this.value();=0A=
			valueMin =3D this._valueMin();=0A=
			valueMax =3D this._valueMax();=0A=
			valPercent =3D ( valueMax !=3D=3D valueMin ) ?=0A=
					( value - valueMin ) / ( valueMax - valueMin ) * 100 :=0A=
					0;=0A=
			_set[ self.orientation =3D=3D=3D "horizontal" ? "left" : "bottom" ] =
=3D valPercent + "%";=0A=
			this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, =
o.animate );=0A=
=0A=
			if ( oRange =3D=3D=3D "min" && this.orientation =3D=3D=3D =
"horizontal" ) {=0A=
				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: =
valPercent + "%" }, o.animate );=0A=
			}=0A=
			if ( oRange =3D=3D=3D "max" && this.orientation =3D=3D=3D =
"horizontal" ) {=0A=
				this.range[ animate ? "animate" : "css" ]( { width: ( 100 - =
valPercent ) + "%" }, { queue: false, duration: o.animate } );=0A=
			}=0A=
			if ( oRange =3D=3D=3D "min" && this.orientation =3D=3D=3D "vertical" =
) {=0A=
				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: =
valPercent + "%" }, o.animate );=0A=
			}=0A=
			if ( oRange =3D=3D=3D "max" && this.orientation =3D=3D=3D "vertical" =
) {=0A=
				this.range[ animate ? "animate" : "css" ]( { height: ( 100 - =
valPercent ) + "%" }, { queue: false, duration: o.animate } );=0A=
			}=0A=
		}=0A=
	}=0A=
=0A=
});=0A=
=0A=
$.extend( $.ui.slider, {=0A=
	version: "1.8.13"=0A=
});=0A=
=0A=
}(jQuery));=0A=
/*=0A=
 * jQuery UI Tabs 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Tabs=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.ui.core.js=0A=
 *	jquery.ui.widget.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
var tabId =3D 0,=0A=
	listId =3D 0;=0A=
=0A=
function getNextTabId() {=0A=
	return ++tabId;=0A=
}=0A=
=0A=
function getNextListId() {=0A=
	return ++listId;=0A=
}=0A=
=0A=
$.widget( "ui.tabs", {=0A=
	options: {=0A=
		add: null,=0A=
		ajaxOptions: null,=0A=
		cache: false,=0A=
		cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', =
secure: true }=0A=
		collapsible: false,=0A=
		disable: null,=0A=
		disabled: [],=0A=
		enable: null,=0A=
		event: "click",=0A=
		fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 =
}=0A=
		idPrefix: "ui-tabs-",=0A=
		load: null,=0A=
		panelTemplate: "<div></div>",=0A=
		remove: null,=0A=
		select: null,=0A=
		show: null,=0A=
		spinner: "<em>Loading&#8230;</em>",=0A=
		tabTemplate: "<li><a href=3D'#{href}'><span>#{label}</span></a></li>"=0A=
	},=0A=
=0A=
	_create: function() {=0A=
		this._tabify( true );=0A=
	},=0A=
=0A=
	_setOption: function( key, value ) {=0A=
		if ( key =3D=3D "selected" ) {=0A=
			if (this.options.collapsible && value =3D=3D this.options.selected ) {=0A=
				return;=0A=
			}=0A=
			this.select( value );=0A=
		} else {=0A=
			this.options[ key ] =3D value;=0A=
			this._tabify();=0A=
		}=0A=
	},=0A=
=0A=
	_tabId: function( a ) {=0A=
		return a.title && a.title.replace( /\s/g, "_" ).replace( =
/[^\w\u00c0-\uFFFF-]/g, "" ) ||=0A=
			this.options.idPrefix + getNextTabId();=0A=
	},=0A=
=0A=
	_sanitizeSelector: function( hash ) {=0A=
		// we need this because an id may contain a ":"=0A=
		return hash.replace( /:/g, "\\:" );=0A=
	},=0A=
=0A=
	_cookie: function() {=0A=
		var cookie =3D this.cookie ||=0A=
			( this.cookie =3D this.options.cookie.name || "ui-tabs-" + =
getNextListId() );=0A=
		return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments =
) ) );=0A=
	},=0A=
=0A=
	_ui: function( tab, panel ) {=0A=
		return {=0A=
			tab: tab,=0A=
			panel: panel,=0A=
			index: this.anchors.index( tab )=0A=
		};=0A=
	},=0A=
=0A=
	_cleanup: function() {=0A=
		// restore all former loading tabs labels=0A=
		this.lis.filter( ".ui-state-processing" )=0A=
			.removeClass( "ui-state-processing" )=0A=
			.find( "span:data(label.tabs)" )=0A=
				.each(function() {=0A=
					var el =3D $( this );=0A=
					el.html( el.data( "label.tabs" ) ).removeData( "label.tabs" );=0A=
				});=0A=
	},=0A=
=0A=
	_tabify: function( init ) {=0A=
		var self =3D this,=0A=
			o =3D this.options,=0A=
			fragmentId =3D /^#.+/; // Safari 2 reports '#' for an empty hash=0A=
=0A=
		this.list =3D this.element.find( "ol,ul" ).eq( 0 );=0A=
		this.lis =3D $( " > li:has(a[href])", this.list );=0A=
		this.anchors =3D this.lis.map(function() {=0A=
			return $( "a", this )[ 0 ];=0A=
		});=0A=
		this.panels =3D $( [] );=0A=
=0A=
		this.anchors.each(function( i, a ) {=0A=
			var href =3D $( a ).attr( "href" );=0A=
			// For dynamically created HTML that contains a hash as href IE < 8 =
expands=0A=
			// such href to the full page url with hash and then misinterprets =
tab as ajax.=0A=
			// Same consideration applies for an added tab with a fragment =
identifier=0A=
			// since a[href=3D#fragment-identifier] does unexpectedly not match.=0A=
			// Thus normalize href attribute...=0A=
			var hrefBase =3D href.split( "#" )[ 0 ],=0A=
				baseEl;=0A=
			if ( hrefBase && ( hrefBase =3D=3D=3D location.toString().split( "#" =
)[ 0 ] ||=0A=
					( baseEl =3D $( "base" )[ 0 ]) && hrefBase =3D=3D=3D baseEl.href ) =
) {=0A=
				href =3D a.hash;=0A=
				a.href =3D href;=0A=
			}=0A=
=0A=
			// inline tab=0A=
			if ( fragmentId.test( href ) ) {=0A=
				self.panels =3D self.panels.add( self.element.find( =
self._sanitizeSelector( href ) ) );=0A=
			// remote tab=0A=
			// prevent loading the page itself if href is just "#"=0A=
			} else if ( href && href !=3D=3D "#" ) {=0A=
				// required for restore on destroy=0A=
				$.data( a, "href.tabs", href );=0A=
=0A=
				// TODO until #3808 is fixed strip fragment identifier from url=0A=
				// (IE fails to load from such url)=0A=
				$.data( a, "load.tabs", href.replace( /#.*$/, "" ) );=0A=
=0A=
				var id =3D self._tabId( a );=0A=
				a.href =3D "#" + id;=0A=
				var $panel =3D self.element.find( "#" + id );=0A=
				if ( !$panel.length ) {=0A=
					$panel =3D $( o.panelTemplate )=0A=
						.attr( "id", id )=0A=
						.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" )=0A=
						.insertAfter( self.panels[ i - 1 ] || self.list );=0A=
					$panel.data( "destroy.tabs", true );=0A=
				}=0A=
				self.panels =3D self.panels.add( $panel );=0A=
			// invalid tab href=0A=
			} else {=0A=
				o.disabled.push( i );=0A=
			}=0A=
		});=0A=
=0A=
		// initialization from scratch=0A=
		if ( init ) {=0A=
			// attach necessary classes for styling=0A=
			this.element.addClass( "ui-tabs ui-widget ui-widget-content =
ui-corner-all" );=0A=
			this.list.addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix =
ui-widget-header ui-corner-all" );=0A=
			this.lis.addClass( "ui-state-default ui-corner-top" );=0A=
			this.panels.addClass( "ui-tabs-panel ui-widget-content =
ui-corner-bottom" );=0A=
=0A=
			// Selected tab=0A=
			// use "selected" option or try to retrieve:=0A=
			// 1. from fragment identifier in url=0A=
			// 2. from cookie=0A=
			// 3. from selected class attribute on <li>=0A=
			if ( o.selected =3D=3D=3D undefined ) {=0A=
				if ( location.hash ) {=0A=
					this.anchors.each(function( i, a ) {=0A=
						if ( a.hash =3D=3D location.hash ) {=0A=
							o.selected =3D i;=0A=
							return false;=0A=
						}=0A=
					});=0A=
				}=0A=
				if ( typeof o.selected !=3D=3D "number" && o.cookie ) {=0A=
					o.selected =3D parseInt( self._cookie(), 10 );=0A=
				}=0A=
				if ( typeof o.selected !=3D=3D "number" && this.lis.filter( =
".ui-tabs-selected" ).length ) {=0A=
					o.selected =3D this.lis.index( this.lis.filter( ".ui-tabs-selected" =
) );=0A=
				}=0A=
				o.selected =3D o.selected || ( this.lis.length ? 0 : -1 );=0A=
			} else if ( o.selected =3D=3D=3D null ) { // usage of null is =
deprecated, TODO remove in next release=0A=
				o.selected =3D -1;=0A=
			}=0A=
=0A=
			// sanity check - default to first tab...=0A=
			o.selected =3D ( ( o.selected >=3D 0 && this.anchors[ o.selected ] ) =
|| o.selected < 0 )=0A=
				? o.selected=0A=
				: 0;=0A=
=0A=
			// Take disabling tabs via class attribute from HTML=0A=
			// into account and update option properly.=0A=
			// A selected tab cannot become disabled.=0A=
			o.disabled =3D $.unique( o.disabled.concat(=0A=
				$.map( this.lis.filter( ".ui-state-disabled" ), function( n, i ) {=0A=
					return self.lis.index( n );=0A=
				})=0A=
			) ).sort();=0A=
=0A=
			if ( $.inArray( o.selected, o.disabled ) !=3D -1 ) {=0A=
				o.disabled.splice( $.inArray( o.selected, o.disabled ), 1 );=0A=
			}=0A=
=0A=
			// highlight selected tab=0A=
			this.panels.addClass( "ui-tabs-hide" );=0A=
			this.lis.removeClass( "ui-tabs-selected ui-state-active" );=0A=
			// check for length avoids error when initializing empty list=0A=
			if ( o.selected >=3D 0 && this.anchors.length ) {=0A=
				self.element.find( self._sanitizeSelector( self.anchors[ o.selected =
].hash ) ).removeClass( "ui-tabs-hide" );=0A=
				this.lis.eq( o.selected ).addClass( "ui-tabs-selected =
ui-state-active" );=0A=
=0A=
				// seems to be expected behavior that the show callback is fired=0A=
				self.element.queue( "tabs", function() {=0A=
					self._trigger( "show", null,=0A=
						self._ui( self.anchors[ o.selected ], self.element.find( =
self._sanitizeSelector( self.anchors[ o.selected ].hash ) )[ 0 ] ) );=0A=
				});=0A=
=0A=
				this.load( o.selected );=0A=
			}=0A=
=0A=
			// clean up to avoid memory leaks in certain versions of IE 6=0A=
			// TODO: namespace this event=0A=
			$( window ).bind( "unload", function() {=0A=
				self.lis.add( self.anchors ).unbind( ".tabs" );=0A=
				self.lis =3D self.anchors =3D self.panels =3D null;=0A=
			});=0A=
		// update selected after add/remove=0A=
		} else {=0A=
			o.selected =3D this.lis.index( this.lis.filter( ".ui-tabs-selected" ) =
);=0A=
		}=0A=
=0A=
		// update collapsible=0A=
		// TODO: use .toggleClass()=0A=
		this.element[ o.collapsible ? "addClass" : "removeClass" ]( =
"ui-tabs-collapsible" );=0A=
=0A=
		// set or update cookie after init and add/remove respectively=0A=
		if ( o.cookie ) {=0A=
			this._cookie( o.selected, o.cookie );=0A=
		}=0A=
=0A=
		// disable tabs=0A=
		for ( var i =3D 0, li; ( li =3D this.lis[ i ] ); i++ ) {=0A=
			$( li )[ $.inArray( i, o.disabled ) !=3D -1 &&=0A=
				// TODO: use .toggleClass()=0A=
				!$( li ).hasClass( "ui-tabs-selected" ) ? "addClass" : "removeClass" =
]( "ui-state-disabled" );=0A=
		}=0A=
=0A=
		// reset cache if switching from cached to not cached=0A=
		if ( o.cache =3D=3D=3D false ) {=0A=
			this.anchors.removeData( "cache.tabs" );=0A=
		}=0A=
=0A=
		// remove all handlers before, tabify may run on existing tabs after =
add or option change=0A=
		this.lis.add( this.anchors ).unbind( ".tabs" );=0A=
=0A=
		if ( o.event !=3D=3D "mouseover" ) {=0A=
			var addState =3D function( state, el ) {=0A=
				if ( el.is( ":not(.ui-state-disabled)" ) ) {=0A=
					el.addClass( "ui-state-" + state );=0A=
				}=0A=
			};=0A=
			var removeState =3D function( state, el ) {=0A=
				el.removeClass( "ui-state-" + state );=0A=
			};=0A=
			this.lis.bind( "mouseover.tabs" , function() {=0A=
				addState( "hover", $( this ) );=0A=
			});=0A=
			this.lis.bind( "mouseout.tabs", function() {=0A=
				removeState( "hover", $( this ) );=0A=
			});=0A=
			this.anchors.bind( "focus.tabs", function() {=0A=
				addState( "focus", $( this ).closest( "li" ) );=0A=
			});=0A=
			this.anchors.bind( "blur.tabs", function() {=0A=
				removeState( "focus", $( this ).closest( "li" ) );=0A=
			});=0A=
		}=0A=
=0A=
		// set up animations=0A=
		var hideFx, showFx;=0A=
		if ( o.fx ) {=0A=
			if ( $.isArray( o.fx ) ) {=0A=
				hideFx =3D o.fx[ 0 ];=0A=
				showFx =3D o.fx[ 1 ];=0A=
			} else {=0A=
				hideFx =3D showFx =3D o.fx;=0A=
			}=0A=
		}=0A=
=0A=
		// Reset certain styles left over from animation=0A=
		// and prevent IE's ClearType bug...=0A=
		function resetStyle( $el, fx ) {=0A=
			$el.css( "display", "" );=0A=
			if ( !$.support.opacity && fx.opacity ) {=0A=
				$el[ 0 ].style.removeAttribute( "filter" );=0A=
			}=0A=
		}=0A=
=0A=
		// Show a tab...=0A=
		var showTab =3D showFx=0A=
			? function( clicked, $show ) {=0A=
				$( clicked ).closest( "li" ).addClass( "ui-tabs-selected =
ui-state-active" );=0A=
				$show.hide().removeClass( "ui-tabs-hide" ) // avoid flicker that way=0A=
					.animate( showFx, showFx.duration || "normal", function() {=0A=
						resetStyle( $show, showFx );=0A=
						self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) );=0A=
					});=0A=
			}=0A=
			: function( clicked, $show ) {=0A=
				$( clicked ).closest( "li" ).addClass( "ui-tabs-selected =
ui-state-active" );=0A=
				$show.removeClass( "ui-tabs-hide" );=0A=
				self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) );=0A=
			};=0A=
=0A=
		// Hide a tab, $show is optional...=0A=
		var hideTab =3D hideFx=0A=
			? function( clicked, $hide ) {=0A=
				$hide.animate( hideFx, hideFx.duration || "normal", function() {=0A=
					self.lis.removeClass( "ui-tabs-selected ui-state-active" );=0A=
					$hide.addClass( "ui-tabs-hide" );=0A=
					resetStyle( $hide, hideFx );=0A=
					self.element.dequeue( "tabs" );=0A=
				});=0A=
			}=0A=
			: function( clicked, $hide, $show ) {=0A=
				self.lis.removeClass( "ui-tabs-selected ui-state-active" );=0A=
				$hide.addClass( "ui-tabs-hide" );=0A=
				self.element.dequeue( "tabs" );=0A=
			};=0A=
=0A=
		// attach tab event handler, unbind to avoid duplicates from former =
tabifying...=0A=
		this.anchors.bind( o.event + ".tabs", function() {=0A=
			var el =3D this,=0A=
				$li =3D $(el).closest( "li" ),=0A=
				$hide =3D self.panels.filter( ":not(.ui-tabs-hide)" ),=0A=
				$show =3D self.element.find( self._sanitizeSelector( el.hash ) );=0A=
=0A=
			// If tab is already selected and not collapsible or tab disabled or=0A=
			// or is already loading or click callback returns false stop here.=0A=
			// Check if click handler returns false last so that it is not =
executed=0A=
			// for a disabled or loading tab!=0A=
			if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible) ||=0A=
				$li.hasClass( "ui-state-disabled" ) ||=0A=
				$li.hasClass( "ui-state-processing" ) ||=0A=
				self.panels.filter( ":animated" ).length ||=0A=
				self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) =
=3D=3D=3D false ) {=0A=
				this.blur();=0A=
				return false;=0A=
			}=0A=
=0A=
			o.selected =3D self.anchors.index( this );=0A=
=0A=
			self.abort();=0A=
=0A=
			// if tab may be closed=0A=
			if ( o.collapsible ) {=0A=
				if ( $li.hasClass( "ui-tabs-selected" ) ) {=0A=
					o.selected =3D -1;=0A=
=0A=
					if ( o.cookie ) {=0A=
						self._cookie( o.selected, o.cookie );=0A=
					}=0A=
=0A=
					self.element.queue( "tabs", function() {=0A=
						hideTab( el, $hide );=0A=
					}).dequeue( "tabs" );=0A=
=0A=
					this.blur();=0A=
					return false;=0A=
				} else if ( !$hide.length ) {=0A=
					if ( o.cookie ) {=0A=
						self._cookie( o.selected, o.cookie );=0A=
					}=0A=
=0A=
					self.element.queue( "tabs", function() {=0A=
						showTab( el, $show );=0A=
					});=0A=
=0A=
					// TODO make passing in node possible, see also =
http://dev.jqueryui.com/ticket/3171=0A=
					self.load( self.anchors.index( this ) );=0A=
=0A=
					this.blur();=0A=
					return false;=0A=
				}=0A=
			}=0A=
=0A=
			if ( o.cookie ) {=0A=
				self._cookie( o.selected, o.cookie );=0A=
			}=0A=
=0A=
			// show new tab=0A=
			if ( $show.length ) {=0A=
				if ( $hide.length ) {=0A=
					self.element.queue( "tabs", function() {=0A=
						hideTab( el, $hide );=0A=
					});=0A=
				}=0A=
				self.element.queue( "tabs", function() {=0A=
					showTab( el, $show );=0A=
				});=0A=
=0A=
				self.load( self.anchors.index( this ) );=0A=
			} else {=0A=
				throw "jQuery UI Tabs: Mismatching fragment identifier.";=0A=
			}=0A=
=0A=
			// Prevent IE from keeping other link focussed when using the back =
button=0A=
			// and remove dotted border from clicked link. This is controlled via =
CSS=0A=
			// in modern browsers; blur() removes focus from address bar in =
Firefox=0A=
			// which can become a usability and annoying problem with =
tabs('rotate').=0A=
			if ( $.browser.msie ) {=0A=
				this.blur();=0A=
			}=0A=
		});=0A=
=0A=
		// disable click in any case=0A=
		this.anchors.bind( "click.tabs", function(){=0A=
			return false;=0A=
		});=0A=
	},=0A=
=0A=
    _getIndex: function( index ) {=0A=
		// meta-function to give users option to provide a href string instead =
of a numerical index.=0A=
		// also sanitizes numerical indexes to valid values.=0A=
		if ( typeof index =3D=3D "string" ) {=0A=
			index =3D this.anchors.index( this.anchors.filter( "[href$=3D" + =
index + "]" ) );=0A=
		}=0A=
=0A=
		return index;=0A=
	},=0A=
=0A=
	destroy: function() {=0A=
		var o =3D this.options;=0A=
=0A=
		this.abort();=0A=
=0A=
		this.element=0A=
			.unbind( ".tabs" )=0A=
			.removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all =
ui-tabs-collapsible" )=0A=
			.removeData( "tabs" );=0A=
=0A=
		this.list.removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix =
ui-widget-header ui-corner-all" );=0A=
=0A=
		this.anchors.each(function() {=0A=
			var href =3D $.data( this, "href.tabs" );=0A=
			if ( href ) {=0A=
				this.href =3D href;=0A=
			}=0A=
			var $this =3D $( this ).unbind( ".tabs" );=0A=
			$.each( [ "href", "load", "cache" ], function( i, prefix ) {=0A=
				$this.removeData( prefix + ".tabs" );=0A=
			});=0A=
		});=0A=
=0A=
		this.lis.unbind( ".tabs" ).add( this.panels ).each(function() {=0A=
			if ( $.data( this, "destroy.tabs" ) ) {=0A=
				$( this ).remove();=0A=
			} else {=0A=
				$( this ).removeClass([=0A=
					"ui-state-default",=0A=
					"ui-corner-top",=0A=
					"ui-tabs-selected",=0A=
					"ui-state-active",=0A=
					"ui-state-hover",=0A=
					"ui-state-focus",=0A=
					"ui-state-disabled",=0A=
					"ui-tabs-panel",=0A=
					"ui-widget-content",=0A=
					"ui-corner-bottom",=0A=
					"ui-tabs-hide"=0A=
				].join( " " ) );=0A=
			}=0A=
		});=0A=
=0A=
		if ( o.cookie ) {=0A=
			this._cookie( null, o.cookie );=0A=
		}=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	add: function( url, label, index ) {=0A=
		if ( index =3D=3D=3D undefined ) {=0A=
			index =3D this.anchors.length;=0A=
		}=0A=
=0A=
		var self =3D this,=0A=
			o =3D this.options,=0A=
			$li =3D $( o.tabTemplate.replace( /#\{href\}/g, url ).replace( =
/#\{label\}/g, label ) ),=0A=
			id =3D !url.indexOf( "#" ) ? url.replace( "#", "" ) : this._tabId( $( =
"a", $li )[ 0 ] );=0A=
=0A=
		$li.addClass( "ui-state-default ui-corner-top" ).data( "destroy.tabs", =
true );=0A=
=0A=
		// try to find an existing element before creating a new one=0A=
		var $panel =3D self.element.find( "#" + id );=0A=
		if ( !$panel.length ) {=0A=
			$panel =3D $( o.panelTemplate )=0A=
				.attr( "id", id )=0A=
				.data( "destroy.tabs", true );=0A=
		}=0A=
		$panel.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom =
ui-tabs-hide" );=0A=
=0A=
		if ( index >=3D this.lis.length ) {=0A=
			$li.appendTo( this.list );=0A=
			$panel.appendTo( this.list[ 0 ].parentNode );=0A=
		} else {=0A=
			$li.insertBefore( this.lis[ index ] );=0A=
			$panel.insertBefore( this.panels[ index ] );=0A=
		}=0A=
=0A=
		o.disabled =3D $.map( o.disabled, function( n, i ) {=0A=
			return n >=3D index ? ++n : n;=0A=
		});=0A=
=0A=
		this._tabify();=0A=
=0A=
		if ( this.anchors.length =3D=3D 1 ) {=0A=
			o.selected =3D 0;=0A=
			$li.addClass( "ui-tabs-selected ui-state-active" );=0A=
			$panel.removeClass( "ui-tabs-hide" );=0A=
			this.element.queue( "tabs", function() {=0A=
				self._trigger( "show", null, self._ui( self.anchors[ 0 ], =
self.panels[ 0 ] ) );=0A=
			});=0A=
=0A=
			this.load( 0 );=0A=
		}=0A=
=0A=
		this._trigger( "add", null, this._ui( this.anchors[ index ], =
this.panels[ index ] ) );=0A=
		return this;=0A=
	},=0A=
=0A=
	remove: function( index ) {=0A=
		index =3D this._getIndex( index );=0A=
		var o =3D this.options,=0A=
			$li =3D this.lis.eq( index ).remove(),=0A=
			$panel =3D this.panels.eq( index ).remove();=0A=
=0A=
		// If selected tab was removed focus tab to the right or=0A=
		// in case the last tab was removed the tab to the left.=0A=
		if ( $li.hasClass( "ui-tabs-selected" ) && this.anchors.length > 1) {=0A=
			this.select( index + ( index + 1 < this.anchors.length ? 1 : -1 ) );=0A=
		}=0A=
=0A=
		o.disabled =3D $.map(=0A=
			$.grep( o.disabled, function(n, i) {=0A=
				return n !=3D index;=0A=
			}),=0A=
			function( n, i ) {=0A=
				return n >=3D index ? --n : n;=0A=
			});=0A=
=0A=
		this._tabify();=0A=
=0A=
		this._trigger( "remove", null, this._ui( $li.find( "a" )[ 0 ], $panel[ =
0 ] ) );=0A=
		return this;=0A=
	},=0A=
=0A=
	enable: function( index ) {=0A=
		index =3D this._getIndex( index );=0A=
		var o =3D this.options;=0A=
		if ( $.inArray( index, o.disabled ) =3D=3D -1 ) {=0A=
			return;=0A=
		}=0A=
=0A=
		this.lis.eq( index ).removeClass( "ui-state-disabled" );=0A=
		o.disabled =3D $.grep( o.disabled, function( n, i ) {=0A=
			return n !=3D index;=0A=
		});=0A=
=0A=
		this._trigger( "enable", null, this._ui( this.anchors[ index ], =
this.panels[ index ] ) );=0A=
		return this;=0A=
	},=0A=
=0A=
	disable: function( index ) {=0A=
		index =3D this._getIndex( index );=0A=
		var self =3D this, o =3D this.options;=0A=
		// cannot disable already selected tab=0A=
		if ( index !=3D o.selected ) {=0A=
			this.lis.eq( index ).addClass( "ui-state-disabled" );=0A=
=0A=
			o.disabled.push( index );=0A=
			o.disabled.sort();=0A=
=0A=
			this._trigger( "disable", null, this._ui( this.anchors[ index ], =
this.panels[ index ] ) );=0A=
		}=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	select: function( index ) {=0A=
		index =3D this._getIndex( index );=0A=
		if ( index =3D=3D -1 ) {=0A=
			if ( this.options.collapsible && this.options.selected !=3D -1 ) {=0A=
				index =3D this.options.selected;=0A=
			} else {=0A=
				return this;=0A=
			}=0A=
		}=0A=
		this.anchors.eq( index ).trigger( this.options.event + ".tabs" );=0A=
		return this;=0A=
	},=0A=
=0A=
	load: function( index ) {=0A=
		index =3D this._getIndex( index );=0A=
		var self =3D this,=0A=
			o =3D this.options,=0A=
			a =3D this.anchors.eq( index )[ 0 ],=0A=
			url =3D $.data( a, "load.tabs" );=0A=
=0A=
		this.abort();=0A=
=0A=
		// not remote or from cache=0A=
		if ( !url || this.element.queue( "tabs" ).length !=3D=3D 0 && $.data( =
a, "cache.tabs" ) ) {=0A=
			this.element.dequeue( "tabs" );=0A=
			return;=0A=
		}=0A=
=0A=
		// load remote from here on=0A=
		this.lis.eq( index ).addClass( "ui-state-processing" );=0A=
=0A=
		if ( o.spinner ) {=0A=
			var span =3D $( "span", a );=0A=
			span.data( "label.tabs", span.html() ).html( o.spinner );=0A=
		}=0A=
=0A=
		this.xhr =3D $.ajax( $.extend( {}, o.ajaxOptions, {=0A=
			url: url,=0A=
			success: function( r, s ) {=0A=
				self.element.find( self._sanitizeSelector( a.hash ) ).html( r );=0A=
=0A=
				// take care of tab labels=0A=
				self._cleanup();=0A=
=0A=
				if ( o.cache ) {=0A=
					$.data( a, "cache.tabs", true );=0A=
				}=0A=
=0A=
				self._trigger( "load", null, self._ui( self.anchors[ index ], =
self.panels[ index ] ) );=0A=
				try {=0A=
					o.ajaxOptions.success( r, s );=0A=
				}=0A=
				catch ( e ) {}=0A=
			},=0A=
			error: function( xhr, s, e ) {=0A=
				// take care of tab labels=0A=
				self._cleanup();=0A=
=0A=
				self._trigger( "load", null, self._ui( self.anchors[ index ], =
self.panels[ index ] ) );=0A=
				try {=0A=
					// Passing index avoid a race condition when this method is=0A=
					// called after the user has selected another tab.=0A=
					// Pass the anchor that initiated this request allows=0A=
					// loadError to manipulate the tab content panel via $(a.hash)=0A=
					o.ajaxOptions.error( xhr, s, index, a );=0A=
				}=0A=
				catch ( e ) {}=0A=
			}=0A=
		} ) );=0A=
=0A=
		// last, so that load event is fired before show...=0A=
		self.element.dequeue( "tabs" );=0A=
=0A=
		return this;=0A=
	},=0A=
=0A=
	abort: function() {=0A=
		// stop possibly running animations=0A=
		this.element.queue( [] );=0A=
		this.panels.stop( false, true );=0A=
=0A=
		// "tabs" queue must not contain more than two elements,=0A=
		// which are the callbacks for the latest clicked tab...=0A=
		this.element.queue( "tabs", this.element.queue( "tabs" ).splice( -2, 2 =
) );=0A=
=0A=
		// terminate pending requests from other tabs=0A=
		if ( this.xhr ) {=0A=
			this.xhr.abort();=0A=
			delete this.xhr;=0A=
		}=0A=
=0A=
		// take care of tab labels=0A=
		this._cleanup();=0A=
		return this;=0A=
	},=0A=
=0A=
	url: function( index, url ) {=0A=
		this.anchors.eq( index ).removeData( "cache.tabs" ).data( "load.tabs", =
url );=0A=
		return this;=0A=
	},=0A=
=0A=
	length: function() {=0A=
		return this.anchors.length;=0A=
	}=0A=
});=0A=
=0A=
$.extend( $.ui.tabs, {=0A=
	version: "1.8.13"=0A=
});=0A=
=0A=
/*=0A=
 * Tabs Extensions=0A=
 */=0A=
=0A=
/*=0A=
 * Rotate=0A=
 */=0A=
$.extend( $.ui.tabs.prototype, {=0A=
	rotation: null,=0A=
	rotate: function( ms, continuing ) {=0A=
		var self =3D this,=0A=
			o =3D this.options;=0A=
=0A=
		var rotate =3D self._rotate || ( self._rotate =3D function( e ) {=0A=
			clearTimeout( self.rotation );=0A=
			self.rotation =3D setTimeout(function() {=0A=
				var t =3D o.selected;=0A=
				self.select( ++t < self.anchors.length ? t : 0 );=0A=
			}, ms );=0A=
			=0A=
			if ( e ) {=0A=
				e.stopPropagation();=0A=
			}=0A=
		});=0A=
=0A=
		var stop =3D self._unrotate || ( self._unrotate =3D !continuing=0A=
			? function(e) {=0A=
				if (e.clientX) { // in case of a true click=0A=
					self.rotate(null);=0A=
				}=0A=
			}=0A=
			: function( e ) {=0A=
				t =3D o.selected;=0A=
				rotate();=0A=
			});=0A=
=0A=
		// start rotation=0A=
		if ( ms ) {=0A=
			this.element.bind( "tabsshow", rotate );=0A=
			this.anchors.bind( o.event + ".tabs", stop );=0A=
			rotate();=0A=
		// stop rotation=0A=
		} else {=0A=
			clearTimeout( self.rotation );=0A=
			this.element.unbind( "tabsshow", rotate );=0A=
			this.anchors.unbind( o.event + ".tabs", stop );=0A=
			delete this._rotate;=0A=
			delete this._unrotate;=0A=
		}=0A=
=0A=
		return this;=0A=
	}=0A=
});=0A=
=0A=
})( jQuery );=0A=
/*=0A=
 * jQuery UI Datepicker 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Datepicker=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.ui.core.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.extend($.ui, { datepicker: { version: "1.8.13" } });=0A=
=0A=
var PROP_NAME =3D 'datepicker';=0A=
var dpuuid =3D new Date().getTime();=0A=
var instActive;=0A=
=0A=
/* Date picker manager.=0A=
   Use the singleton instance of this class, $.datepicker, to interact =
with the date picker.=0A=
   Settings for (groups of) date pickers are maintained in an instance =
object,=0A=
   allowing multiple different settings on the same page. */=0A=
=0A=
function Datepicker() {=0A=
	this.debug =3D false; // Change this to true to start debugging=0A=
	this._curInst =3D null; // The current instance in use=0A=
	this._keyEvent =3D false; // If the last event was a key event=0A=
	this._disabledInputs =3D []; // List of date picker inputs that have =
been disabled=0A=
	this._datepickerShowing =3D false; // True if the popup picker is =
showing , false if not=0A=
	this._inDialog =3D false; // True if showing within a "dialog", false =
if not=0A=
	this._mainDivId =3D 'ui-datepicker-div'; // The ID of the main =
datepicker division=0A=
	this._inlineClass =3D 'ui-datepicker-inline'; // The name of the inline =
marker class=0A=
	this._appendClass =3D 'ui-datepicker-append'; // The name of the append =
marker class=0A=
	this._triggerClass =3D 'ui-datepicker-trigger'; // The name of the =
trigger marker class=0A=
	this._dialogClass =3D 'ui-datepicker-dialog'; // The name of the dialog =
marker class=0A=
	this._disableClass =3D 'ui-datepicker-disabled'; // The name of the =
disabled covering marker class=0A=
	this._unselectableClass =3D 'ui-datepicker-unselectable'; // The name =
of the unselectable cell marker class=0A=
	this._currentClass =3D 'ui-datepicker-current-day'; // The name of the =
current day marker class=0A=
	this._dayOverClass =3D 'ui-datepicker-days-cell-over'; // The name of =
the day hover marker class=0A=
	this.regional =3D []; // Available regional settings, indexed by =
language code=0A=
	this.regional[''] =3D { // Default regional settings=0A=
		closeText: 'Done', // Display text for close link=0A=
		prevText: 'Prev', // Display text for previous month link=0A=
		nextText: 'Next', // Display text for next month link=0A=
		currentText: 'Today', // Display text for current month link=0A=
		monthNames: ['January','February','March','April','May','June',=0A=
			'July','August','September','October','November','December'], // =
Names of months for drop-down and formatting=0A=
		monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', =
'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting=0A=
		dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', =
'Friday', 'Saturday'], // For formatting=0A=
		dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // =
For formatting=0A=
		dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings =
for days starting at Sunday=0A=
		weekHeader: 'Wk', // Column header for week of the year=0A=
		dateFormat: 'mm/dd/yy', // See format options on parseDate=0A=
		firstDay: 0, // The first day of the week, Sun =3D 0, Mon =3D 1, ...=0A=
		isRTL: false, // True if right-to-left language, false if left-to-right=0A=
		showMonthAfterYear: false, // True if the year select precedes month, =
false for month then year=0A=
		yearSuffix: '' // Additional text to append to the year in the month =
headers=0A=
	};=0A=
	this._defaults =3D { // Global defaults for all the date picker =
instances=0A=
		showOn: 'focus', // 'focus' for popup on focus,=0A=
			// 'button' for trigger button, or 'both' for either=0A=
		showAnim: 'fadeIn', // Name of jQuery animation for popup=0A=
		showOptions: {}, // Options for enhanced animations=0A=
		defaultDate: null, // Used when field is blank: actual date,=0A=
			// +/-number for offset from today, null for today=0A=
		appendText: '', // Display text following the input box, e.g. showing =
the format=0A=
		buttonText: '...', // Text for trigger button=0A=
		buttonImage: '', // URL for trigger button image=0A=
		buttonImageOnly: false, // True if the image appears alone, false if =
it appears on a button=0A=
		hideIfNoPrevNext: false, // True to hide next/previous month links=0A=
			// if not applicable, false to just disable them=0A=
		navigationAsDateFormat: false, // True if date formatting applied to =
prev/today/next links=0A=
		gotoCurrent: false, // True if today link goes back to current =
selection instead=0A=
		changeMonth: false, // True if month can be selected directly, false =
if only prev/next=0A=
		changeYear: false, // True if year can be selected directly, false if =
only prev/next=0A=
		yearRange: 'c-10:c+10', // Range of years to display in drop-down,=0A=
			// either relative to today's year (-nn:+nn), relative to currently =
displayed year=0A=
			// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above =
(nnnn:-n)=0A=
		showOtherMonths: false, // True to show dates in other months, false =
to leave blank=0A=
		selectOtherMonths: false, // True to allow selection of dates in other =
months, false for unselectable=0A=
		showWeek: false, // True to show week of the year, false to not show it=0A=
		calculateWeek: this.iso8601Week, // How to calculate the week of the =
year,=0A=
			// takes a Date and returns the number of the week for it=0A=
		shortYearCutoff: '+10', // Short year values < this are in the current =
century,=0A=
			// > this are in the previous century,=0A=
			// string value starting with '+' for current year + value=0A=
		minDate: null, // The earliest selectable date, or null for no limit=0A=
		maxDate: null, // The latest selectable date, or null for no limit=0A=
		duration: 'fast', // Duration of display/closure=0A=
		beforeShowDay: null, // Function that takes a date and returns an =
array with=0A=
			// [0] =3D true if selectable, false if not, [1] =3D custom CSS class =
name(s) or '',=0A=
			// [2] =3D cell title (optional), e.g. $.datepicker.noWeekends=0A=
		beforeShow: null, // Function that takes an input field and=0A=
			// returns a set of custom settings for the date picker=0A=
		onSelect: null, // Define a callback function when a date is selected=0A=
		onChangeMonthYear: null, // Define a callback function when the month =
or year is changed=0A=
		onClose: null, // Define a callback function when the datepicker is =
closed=0A=
		numberOfMonths: 1, // Number of months to show at a time=0A=
		showCurrentAtPos: 0, // The position in multipe months at which to =
show the current month (starting at 0)=0A=
		stepMonths: 1, // Number of months to step back/forward=0A=
		stepBigMonths: 12, // Number of months to step back/forward for the =
big links=0A=
		altField: '', // Selector for an alternate field to store selected =
dates into=0A=
		altFormat: '', // The date format to use for the alternate field=0A=
		constrainInput: true, // The input is constrained by the current date =
format=0A=
		showButtonPanel: false, // True to show button panel, false to not =
show it=0A=
		autoSize: false // True to size the input for the date format, false =
to leave as is=0A=
	};=0A=
	$.extend(this._defaults, this.regional['']);=0A=
	this.dpDiv =3D bindHover($('<div id=3D"' + this._mainDivId + '" =
class=3D"ui-datepicker ui-widget ui-widget-content ui-helper-clearfix =
ui-corner-all"></div>'));=0A=
}=0A=
=0A=
$.extend(Datepicker.prototype, {=0A=
	/* Class name added to elements to indicate already configured with a =
date picker. */=0A=
	markerClassName: 'hasDatepicker',=0A=
=0A=
	/* Debug logging (if enabled). */=0A=
	log: function () {=0A=
		if (this.debug)=0A=
			console.log.apply('', arguments);=0A=
	},=0A=
	=0A=
	// TODO rename to "widget" when switching to widget factory=0A=
	_widgetDatepicker: function() {=0A=
		return this.dpDiv;=0A=
	},=0A=
=0A=
	/* Override the default settings for all instances of the date picker.=0A=
	   @param  settings  object - the new settings to use as defaults =
(anonymous object)=0A=
	   @return the manager object */=0A=
	setDefaults: function(settings) {=0A=
		extendRemove(this._defaults, settings || {});=0A=
		return this;=0A=
	},=0A=
=0A=
	/* Attach the date picker to a jQuery selection.=0A=
	   @param  target    element - the target input field or division or =
span=0A=
	   @param  settings  object - the new settings to use for this date =
picker instance (anonymous) */=0A=
	_attachDatepicker: function(target, settings) {=0A=
		// check for settings on the control itself - in namespace 'date:'=0A=
		var inlineSettings =3D null;=0A=
		for (var attrName in this._defaults) {=0A=
			var attrValue =3D target.getAttribute('date:' + attrName);=0A=
			if (attrValue) {=0A=
				inlineSettings =3D inlineSettings || {};=0A=
				try {=0A=
					inlineSettings[attrName] =3D eval(attrValue);=0A=
				} catch (err) {=0A=
					inlineSettings[attrName] =3D attrValue;=0A=
				}=0A=
			}=0A=
		}=0A=
		var nodeName =3D target.nodeName.toLowerCase();=0A=
		var inline =3D (nodeName =3D=3D 'div' || nodeName =3D=3D 'span');=0A=
		if (!target.id) {=0A=
			this.uuid +=3D 1;=0A=
			target.id =3D 'dp' + this.uuid;=0A=
		}=0A=
		var inst =3D this._newInst($(target), inline);=0A=
		inst.settings =3D $.extend({}, settings || {}, inlineSettings || {});=0A=
		if (nodeName =3D=3D 'input') {=0A=
			this._connectDatepicker(target, inst);=0A=
		} else if (inline) {=0A=
			this._inlineDatepicker(target, inst);=0A=
		}=0A=
	},=0A=
=0A=
	/* Create a new instance object. */=0A=
	_newInst: function(target, inline) {=0A=
		var id =3D target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // =
escape jQuery meta chars=0A=
		return {id: id, input: target, // associated target=0A=
			selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current =
selection=0A=
			drawMonth: 0, drawYear: 0, // month being drawn=0A=
			inline: inline, // is datepicker inline or not=0A=
			dpDiv: (!inline ? this.dpDiv : // presentation div=0A=
			bindHover($('<div class=3D"' + this._inlineClass + ' ui-datepicker =
ui-widget ui-widget-content ui-helper-clearfix =
ui-corner-all"></div>')))};=0A=
	},=0A=
=0A=
	/* Attach the date picker to an input field. */=0A=
	_connectDatepicker: function(target, inst) {=0A=
		var input =3D $(target);=0A=
		inst.append =3D $([]);=0A=
		inst.trigger =3D $([]);=0A=
		if (input.hasClass(this.markerClassName))=0A=
			return;=0A=
		this._attachments(input, inst);=0A=
		input.addClass(this.markerClassName).keydown(this._doKeyDown).=0A=
			keypress(this._doKeyPress).keyup(this._doKeyUp).=0A=
			bind("setData.datepicker", function(event, key, value) {=0A=
				inst.settings[key] =3D value;=0A=
			}).bind("getData.datepicker", function(event, key) {=0A=
				return this._get(inst, key);=0A=
			});=0A=
		this._autoSize(inst);=0A=
		$.data(target, PROP_NAME, inst);=0A=
	},=0A=
=0A=
	/* Make attachments based on settings. */=0A=
	_attachments: function(input, inst) {=0A=
		var appendText =3D this._get(inst, 'appendText');=0A=
		var isRTL =3D this._get(inst, 'isRTL');=0A=
		if (inst.append)=0A=
			inst.append.remove();=0A=
		if (appendText) {=0A=
			inst.append =3D $('<span class=3D"' + this._appendClass + '">' + =
appendText + '</span>');=0A=
			input[isRTL ? 'before' : 'after'](inst.append);=0A=
		}=0A=
		input.unbind('focus', this._showDatepicker);=0A=
		if (inst.trigger)=0A=
			inst.trigger.remove();=0A=
		var showOn =3D this._get(inst, 'showOn');=0A=
		if (showOn =3D=3D 'focus' || showOn =3D=3D 'both') // pop-up date =
picker when in the marked field=0A=
			input.focus(this._showDatepicker);=0A=
		if (showOn =3D=3D 'button' || showOn =3D=3D 'both') { // pop-up date =
picker when button clicked=0A=
			var buttonText =3D this._get(inst, 'buttonText');=0A=
			var buttonImage =3D this._get(inst, 'buttonImage');=0A=
			inst.trigger =3D $(this._get(inst, 'buttonImageOnly') ?=0A=
				$('<img/>').addClass(this._triggerClass).=0A=
					attr({ src: buttonImage, alt: buttonText, title: buttonText }) :=0A=
				$('<button type=3D"button"></button>').addClass(this._triggerClass).=0A=
					html(buttonImage =3D=3D '' ? buttonText : $('<img/>').attr(=0A=
					{ src:buttonImage, alt:buttonText, title:buttonText })));=0A=
			input[isRTL ? 'before' : 'after'](inst.trigger);=0A=
			inst.trigger.click(function() {=0A=
				if ($.datepicker._datepickerShowing && $.datepicker._lastInput =
=3D=3D input[0])=0A=
					$.datepicker._hideDatepicker();=0A=
				else=0A=
					$.datepicker._showDatepicker(input[0]);=0A=
				return false;=0A=
			});=0A=
		}=0A=
	},=0A=
=0A=
	/* Apply the maximum length for the date format. */=0A=
	_autoSize: function(inst) {=0A=
		if (this._get(inst, 'autoSize') && !inst.inline) {=0A=
			var date =3D new Date(2009, 12 - 1, 20); // Ensure double digits=0A=
			var dateFormat =3D this._get(inst, 'dateFormat');=0A=
			if (dateFormat.match(/[DM]/)) {=0A=
				var findMax =3D function(names) {=0A=
					var max =3D 0;=0A=
					var maxI =3D 0;=0A=
					for (var i =3D 0; i < names.length; i++) {=0A=
						if (names[i].length > max) {=0A=
							max =3D names[i].length;=0A=
							maxI =3D i;=0A=
						}=0A=
					}=0A=
					return maxI;=0A=
				};=0A=
				date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?=0A=
					'monthNames' : 'monthNamesShort'))));=0A=
				date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?=0A=
					'dayNames' : 'dayNamesShort'))) + 20 - date.getDay());=0A=
			}=0A=
			inst.input.attr('size', this._formatDate(inst, date).length);=0A=
		}=0A=
	},=0A=
=0A=
	/* Attach an inline date picker to a div. */=0A=
	_inlineDatepicker: function(target, inst) {=0A=
		var divSpan =3D $(target);=0A=
		if (divSpan.hasClass(this.markerClassName))=0A=
			return;=0A=
		divSpan.addClass(this.markerClassName).append(inst.dpDiv).=0A=
			bind("setData.datepicker", function(event, key, value){=0A=
				inst.settings[key] =3D value;=0A=
			}).bind("getData.datepicker", function(event, key){=0A=
				return this._get(inst, key);=0A=
			});=0A=
		$.data(target, PROP_NAME, inst);=0A=
		this._setDate(inst, this._getDefaultDate(inst), true);=0A=
		this._updateDatepicker(inst);=0A=
		this._updateAlternate(inst);=0A=
		inst.dpDiv.show();=0A=
	},=0A=
=0A=
	/* Pop-up the date picker in a "dialog" box.=0A=
	   @param  input     element - ignored=0A=
	   @param  date      string or Date - the initial date to display=0A=
	   @param  onSelect  function - the function to call when a date is =
selected=0A=
	   @param  settings  object - update the dialog date picker instance's =
settings (anonymous object)=0A=
	   @param  pos       int[2] - coordinates for the dialog's position =
within the screen or=0A=
	                     event - with x/y coordinates or=0A=
	                     leave empty for default (screen centre)=0A=
	   @return the manager object */=0A=
	_dialogDatepicker: function(input, date, onSelect, settings, pos) {=0A=
		var inst =3D this._dialogInst; // internal instance=0A=
		if (!inst) {=0A=
			this.uuid +=3D 1;=0A=
			var id =3D 'dp' + this.uuid;=0A=
			this._dialogInput =3D $('<input type=3D"text" id=3D"' + id +=0A=
				'" style=3D"position: absolute; top: -100px; width: 0px; z-index: =
-10;"/>');=0A=
			this._dialogInput.keydown(this._doKeyDown);=0A=
			$('body').append(this._dialogInput);=0A=
			inst =3D this._dialogInst =3D this._newInst(this._dialogInput, false);=0A=
			inst.settings =3D {};=0A=
			$.data(this._dialogInput[0], PROP_NAME, inst);=0A=
		}=0A=
		extendRemove(inst.settings, settings || {});=0A=
		date =3D (date && date.constructor =3D=3D Date ? =
this._formatDate(inst, date) : date);=0A=
		this._dialogInput.val(date);=0A=
=0A=
		this._pos =3D (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : =
null);=0A=
		if (!this._pos) {=0A=
			var browserWidth =3D document.documentElement.clientWidth;=0A=
			var browserHeight =3D document.documentElement.clientHeight;=0A=
			var scrollX =3D document.documentElement.scrollLeft || =
document.body.scrollLeft;=0A=
			var scrollY =3D document.documentElement.scrollTop || =
document.body.scrollTop;=0A=
			this._pos =3D // should use actual width/height below=0A=
				[(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + =
scrollY];=0A=
		}=0A=
=0A=
		// move input on screen for focus, but hidden behind dialog=0A=
		this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', =
this._pos[1] + 'px');=0A=
		inst.settings.onSelect =3D onSelect;=0A=
		this._inDialog =3D true;=0A=
		this.dpDiv.addClass(this._dialogClass);=0A=
		this._showDatepicker(this._dialogInput[0]);=0A=
		if ($.blockUI)=0A=
			$.blockUI(this.dpDiv);=0A=
		$.data(this._dialogInput[0], PROP_NAME, inst);=0A=
		return this;=0A=
	},=0A=
=0A=
	/* Detach a datepicker from its control.=0A=
	   @param  target    element - the target input field or division or =
span */=0A=
	_destroyDatepicker: function(target) {=0A=
		var $target =3D $(target);=0A=
		var inst =3D $.data(target, PROP_NAME);=0A=
		if (!$target.hasClass(this.markerClassName)) {=0A=
			return;=0A=
		}=0A=
		var nodeName =3D target.nodeName.toLowerCase();=0A=
		$.removeData(target, PROP_NAME);=0A=
		if (nodeName =3D=3D 'input') {=0A=
			inst.append.remove();=0A=
			inst.trigger.remove();=0A=
			$target.removeClass(this.markerClassName).=0A=
				unbind('focus', this._showDatepicker).=0A=
				unbind('keydown', this._doKeyDown).=0A=
				unbind('keypress', this._doKeyPress).=0A=
				unbind('keyup', this._doKeyUp);=0A=
		} else if (nodeName =3D=3D 'div' || nodeName =3D=3D 'span')=0A=
			$target.removeClass(this.markerClassName).empty();=0A=
	},=0A=
=0A=
	/* Enable the date picker to a jQuery selection.=0A=
	   @param  target    element - the target input field or division or =
span */=0A=
	_enableDatepicker: function(target) {=0A=
		var $target =3D $(target);=0A=
		var inst =3D $.data(target, PROP_NAME);=0A=
		if (!$target.hasClass(this.markerClassName)) {=0A=
			return;=0A=
		}=0A=
		var nodeName =3D target.nodeName.toLowerCase();=0A=
		if (nodeName =3D=3D 'input') {=0A=
			target.disabled =3D false;=0A=
			inst.trigger.filter('button').=0A=
				each(function() { this.disabled =3D false; }).end().=0A=
				filter('img').css({opacity: '1.0', cursor: ''});=0A=
		}=0A=
		else if (nodeName =3D=3D 'div' || nodeName =3D=3D 'span') {=0A=
			var inline =3D $target.children('.' + this._inlineClass);=0A=
			inline.children().removeClass('ui-state-disabled');=0A=
			inline.find("select.ui-datepicker-month, select.ui-datepicker-year").=0A=
				removeAttr("disabled");=0A=
		}=0A=
		this._disabledInputs =3D $.map(this._disabledInputs,=0A=
			function(value) { return (value =3D=3D target ? null : value); }); // =
delete entry=0A=
	},=0A=
=0A=
	/* Disable the date picker to a jQuery selection.=0A=
	   @param  target    element - the target input field or division or =
span */=0A=
	_disableDatepicker: function(target) {=0A=
		var $target =3D $(target);=0A=
		var inst =3D $.data(target, PROP_NAME);=0A=
		if (!$target.hasClass(this.markerClassName)) {=0A=
			return;=0A=
		}=0A=
		var nodeName =3D target.nodeName.toLowerCase();=0A=
		if (nodeName =3D=3D 'input') {=0A=
			target.disabled =3D true;=0A=
			inst.trigger.filter('button').=0A=
				each(function() { this.disabled =3D true; }).end().=0A=
				filter('img').css({opacity: '0.5', cursor: 'default'});=0A=
		}=0A=
		else if (nodeName =3D=3D 'div' || nodeName =3D=3D 'span') {=0A=
			var inline =3D $target.children('.' + this._inlineClass);=0A=
			inline.children().addClass('ui-state-disabled');=0A=
			inline.find("select.ui-datepicker-month, select.ui-datepicker-year").=0A=
				attr("disabled", "disabled");=0A=
		}=0A=
		this._disabledInputs =3D $.map(this._disabledInputs,=0A=
			function(value) { return (value =3D=3D target ? null : value); }); // =
delete entry=0A=
		this._disabledInputs[this._disabledInputs.length] =3D target;=0A=
	},=0A=
=0A=
	/* Is the first field in a jQuery collection disabled as a datepicker?=0A=
	   @param  target    element - the target input field or division or =
span=0A=
	   @return boolean - true if disabled, false if enabled */=0A=
	_isDisabledDatepicker: function(target) {=0A=
		if (!target) {=0A=
			return false;=0A=
		}=0A=
		for (var i =3D 0; i < this._disabledInputs.length; i++) {=0A=
			if (this._disabledInputs[i] =3D=3D target)=0A=
				return true;=0A=
		}=0A=
		return false;=0A=
	},=0A=
=0A=
	/* Retrieve the instance data for the target control.=0A=
	   @param  target  element - the target input field or division or span=0A=
	   @return  object - the associated instance data=0A=
	   @throws  error if a jQuery problem getting data */=0A=
	_getInst: function(target) {=0A=
		try {=0A=
			return $.data(target, PROP_NAME);=0A=
		}=0A=
		catch (err) {=0A=
			throw 'Missing instance data for this datepicker';=0A=
		}=0A=
	},=0A=
=0A=
	/* Update or retrieve the settings for a date picker attached to an =
input field or division.=0A=
	   @param  target  element - the target input field or division or span=0A=
	   @param  name    object - the new settings to update or=0A=
	                   string - the name of the setting to change or =
retrieve,=0A=
	                   when retrieving also 'all' for all instance settings =
or=0A=
	                   'defaults' for all global defaults=0A=
	   @param  value   any - the new value for the setting=0A=
	                   (omit if above is an object or to retrieve a value) =
*/=0A=
	_optionDatepicker: function(target, name, value) {=0A=
		var inst =3D this._getInst(target);=0A=
		if (arguments.length =3D=3D 2 && typeof name =3D=3D 'string') {=0A=
			return (name =3D=3D 'defaults' ? $.extend({}, $.datepicker._defaults) =
:=0A=
				(inst ? (name =3D=3D 'all' ? $.extend({}, inst.settings) :=0A=
				this._get(inst, name)) : null));=0A=
		}=0A=
		var settings =3D name || {};=0A=
		if (typeof name =3D=3D 'string') {=0A=
			settings =3D {};=0A=
			settings[name] =3D value;=0A=
		}=0A=
		if (inst) {=0A=
			if (this._curInst =3D=3D inst) {=0A=
				this._hideDatepicker();=0A=
			}=0A=
			var date =3D this._getDateDatepicker(target, true);=0A=
			var minDate =3D this._getMinMaxDate(inst, 'min');=0A=
			var maxDate =3D this._getMinMaxDate(inst, 'max');=0A=
			extendRemove(inst.settings, settings);=0A=
			// reformat the old minDate/maxDate values if dateFormat changes and =
a new minDate/maxDate isn't provided=0A=
			if (minDate !=3D=3D null && settings['dateFormat'] !=3D=3D undefined =
&& settings['minDate'] =3D=3D=3D undefined)=0A=
				inst.settings.minDate =3D this._formatDate(inst, minDate);=0A=
			if (maxDate !=3D=3D null && settings['dateFormat'] !=3D=3D undefined =
&& settings['maxDate'] =3D=3D=3D undefined)=0A=
				inst.settings.maxDate =3D this._formatDate(inst, maxDate);=0A=
			this._attachments($(target), inst);=0A=
			this._autoSize(inst);=0A=
			this._setDate(inst, date);=0A=
			this._updateAlternate(inst);=0A=
			this._updateDatepicker(inst);=0A=
		}=0A=
	},=0A=
=0A=
	// change method deprecated=0A=
	_changeDatepicker: function(target, name, value) {=0A=
		this._optionDatepicker(target, name, value);=0A=
	},=0A=
=0A=
	/* Redraw the date picker attached to an input field or division.=0A=
	   @param  target  element - the target input field or division or span =
*/=0A=
	_refreshDatepicker: function(target) {=0A=
		var inst =3D this._getInst(target);=0A=
		if (inst) {=0A=
			this._updateDatepicker(inst);=0A=
		}=0A=
	},=0A=
=0A=
	/* Set the dates for a jQuery selection.=0A=
	   @param  target   element - the target input field or division or span=0A=
	   @param  date     Date - the new date */=0A=
	_setDateDatepicker: function(target, date) {=0A=
		var inst =3D this._getInst(target);=0A=
		if (inst) {=0A=
			this._setDate(inst, date);=0A=
			this._updateDatepicker(inst);=0A=
			this._updateAlternate(inst);=0A=
		}=0A=
	},=0A=
=0A=
	/* Get the date(s) for the first entry in a jQuery selection.=0A=
	   @param  target     element - the target input field or division or =
span=0A=
	   @param  noDefault  boolean - true if no default date is to be used=0A=
	   @return Date - the current date */=0A=
	_getDateDatepicker: function(target, noDefault) {=0A=
		var inst =3D this._getInst(target);=0A=
		if (inst && !inst.inline)=0A=
			this._setDateFromField(inst, noDefault);=0A=
		return (inst ? this._getDate(inst) : null);=0A=
	},=0A=
=0A=
	/* Handle keystrokes. */=0A=
	_doKeyDown: function(event) {=0A=
		var inst =3D $.datepicker._getInst(event.target);=0A=
		var handled =3D true;=0A=
		var isRTL =3D inst.dpDiv.is('.ui-datepicker-rtl');=0A=
		inst._keyEvent =3D true;=0A=
		if ($.datepicker._datepickerShowing)=0A=
			switch (event.keyCode) {=0A=
				case 9: $.datepicker._hideDatepicker();=0A=
						handled =3D false;=0A=
						break; // hide on tab out=0A=
				case 13: var sel =3D $('td.' + $.datepicker._dayOverClass + ':not(.' =
+ =0A=
									$.datepicker._currentClass + ')', inst.dpDiv);=0A=
						if (sel[0])=0A=
							$.datepicker._selectDay(event.target, inst.selectedMonth, =
inst.selectedYear, sel[0]);=0A=
						else=0A=
							$.datepicker._hideDatepicker();=0A=
						return false; // don't submit the form=0A=
						break; // select the value on enter=0A=
				case 27: $.datepicker._hideDatepicker();=0A=
						break; // hide on escape=0A=
				case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?=0A=
							-$.datepicker._get(inst, 'stepBigMonths') :=0A=
							-$.datepicker._get(inst, 'stepMonths')), 'M');=0A=
						break; // previous month/year on page up/+ ctrl=0A=
				case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?=0A=
							+$.datepicker._get(inst, 'stepBigMonths') :=0A=
							+$.datepicker._get(inst, 'stepMonths')), 'M');=0A=
						break; // next month/year on page down/+ ctrl=0A=
				case 35: if (event.ctrlKey || event.metaKey) =
$.datepicker._clearDate(event.target);=0A=
						handled =3D event.ctrlKey || event.metaKey;=0A=
						break; // clear on ctrl or command +end=0A=
				case 36: if (event.ctrlKey || event.metaKey) =
$.datepicker._gotoToday(event.target);=0A=
						handled =3D event.ctrlKey || event.metaKey;=0A=
						break; // current on ctrl or command +home=0A=
				case 37: if (event.ctrlKey || event.metaKey) =
$.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');=0A=
						handled =3D event.ctrlKey || event.metaKey;=0A=
						// -1 day on ctrl or command +left=0A=
						if (event.originalEvent.altKey) =
$.datepicker._adjustDate(event.target, (event.ctrlKey ?=0A=
									-$.datepicker._get(inst, 'stepBigMonths') :=0A=
									-$.datepicker._get(inst, 'stepMonths')), 'M');=0A=
						// next month/year on alt +left on Mac=0A=
						break;=0A=
				case 38: if (event.ctrlKey || event.metaKey) =
$.datepicker._adjustDate(event.target, -7, 'D');=0A=
						handled =3D event.ctrlKey || event.metaKey;=0A=
						break; // -1 week on ctrl or command +up=0A=
				case 39: if (event.ctrlKey || event.metaKey) =
$.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');=0A=
						handled =3D event.ctrlKey || event.metaKey;=0A=
						// +1 day on ctrl or command +right=0A=
						if (event.originalEvent.altKey) =
$.datepicker._adjustDate(event.target, (event.ctrlKey ?=0A=
									+$.datepicker._get(inst, 'stepBigMonths') :=0A=
									+$.datepicker._get(inst, 'stepMonths')), 'M');=0A=
						// next month/year on alt +right=0A=
						break;=0A=
				case 40: if (event.ctrlKey || event.metaKey) =
$.datepicker._adjustDate(event.target, +7, 'D');=0A=
						handled =3D event.ctrlKey || event.metaKey;=0A=
						break; // +1 week on ctrl or command +down=0A=
				default: handled =3D false;=0A=
			}=0A=
		else if (event.keyCode =3D=3D 36 && event.ctrlKey) // display the date =
picker on ctrl+home=0A=
			$.datepicker._showDatepicker(this);=0A=
		else {=0A=
			handled =3D false;=0A=
		}=0A=
		if (handled) {=0A=
			event.preventDefault();=0A=
			event.stopPropagation();=0A=
		}=0A=
	},=0A=
=0A=
	/* Filter entered characters - based on date format. */=0A=
	_doKeyPress: function(event) {=0A=
		var inst =3D $.datepicker._getInst(event.target);=0A=
		if ($.datepicker._get(inst, 'constrainInput')) {=0A=
			var chars =3D $.datepicker._possibleChars($.datepicker._get(inst, =
'dateFormat'));=0A=
			var chr =3D String.fromCharCode(event.charCode =3D=3D undefined ? =
event.keyCode : event.charCode);=0A=
			return event.ctrlKey || event.metaKey || (chr < ' ' || !chars || =
chars.indexOf(chr) > -1);=0A=
		}=0A=
	},=0A=
=0A=
	/* Synchronise manual entry and field/alternate field. */=0A=
	_doKeyUp: function(event) {=0A=
		var inst =3D $.datepicker._getInst(event.target);=0A=
		if (inst.input.val() !=3D inst.lastVal) {=0A=
			try {=0A=
				var date =3D $.datepicker.parseDate($.datepicker._get(inst, =
'dateFormat'),=0A=
					(inst.input ? inst.input.val() : null),=0A=
					$.datepicker._getFormatConfig(inst));=0A=
				if (date) { // only if valid=0A=
					$.datepicker._setDateFromField(inst);=0A=
					$.datepicker._updateAlternate(inst);=0A=
					$.datepicker._updateDatepicker(inst);=0A=
				}=0A=
			}=0A=
			catch (event) {=0A=
				$.datepicker.log(event);=0A=
			}=0A=
		}=0A=
		return true;=0A=
	},=0A=
=0A=
	/* Pop-up the date picker for a given input field.=0A=
	   @param  input  element - the input field attached to the date picker =
or=0A=
	                  event - if triggered by focus */=0A=
	_showDatepicker: function(input) {=0A=
		input =3D input.target || input;=0A=
		if (input.nodeName.toLowerCase() !=3D 'input') // find from =
button/image trigger=0A=
			input =3D $('input', input.parentNode)[0];=0A=
		if ($.datepicker._isDisabledDatepicker(input) || =
$.datepicker._lastInput =3D=3D input) // already here=0A=
			return;=0A=
		var inst =3D $.datepicker._getInst(input);=0A=
		if ($.datepicker._curInst && $.datepicker._curInst !=3D inst) {=0A=
			$.datepicker._curInst.dpDiv.stop(true, true);=0A=
		}=0A=
		var beforeShow =3D $.datepicker._get(inst, 'beforeShow');=0A=
		extendRemove(inst.settings, (beforeShow ? beforeShow.apply(input, =
[input, inst]) : {}));=0A=
		inst.lastVal =3D null;=0A=
		$.datepicker._lastInput =3D input;=0A=
		$.datepicker._setDateFromField(inst);=0A=
		if ($.datepicker._inDialog) // hide cursor=0A=
			input.value =3D '';=0A=
		if (!$.datepicker._pos) { // position below input=0A=
			$.datepicker._pos =3D $.datepicker._findPos(input);=0A=
			$.datepicker._pos[1] +=3D input.offsetHeight; // add the height=0A=
		}=0A=
		var isFixed =3D false;=0A=
		$(input).parents().each(function() {=0A=
			isFixed |=3D $(this).css('position') =3D=3D 'fixed';=0A=
			return !isFixed;=0A=
		});=0A=
		if (isFixed && $.browser.opera) { // correction for Opera when fixed =
and scrolled=0A=
			$.datepicker._pos[0] -=3D document.documentElement.scrollLeft;=0A=
			$.datepicker._pos[1] -=3D document.documentElement.scrollTop;=0A=
		}=0A=
		var offset =3D {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};=0A=
		$.datepicker._pos =3D null;=0A=
		//to avoid flashes on Firefox=0A=
		inst.dpDiv.empty();=0A=
		// determine sizing offscreen=0A=
		inst.dpDiv.css({position: 'absolute', display: 'block', top: =
'-1000px'});=0A=
		$.datepicker._updateDatepicker(inst);=0A=
		// fix width for dynamic number of date pickers=0A=
		// and adjust position before showing=0A=
		offset =3D $.datepicker._checkOffset(inst, offset, isFixed);=0A=
		inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?=0A=
			'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none',=0A=
			left: offset.left + 'px', top: offset.top + 'px'});=0A=
		if (!inst.inline) {=0A=
			var showAnim =3D $.datepicker._get(inst, 'showAnim');=0A=
			var duration =3D $.datepicker._get(inst, 'duration');=0A=
			var postProcess =3D function() {=0A=
				var cover =3D inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- =
only=0A=
				if( !! cover.length ){=0A=
					var borders =3D $.datepicker._getBorders(inst.dpDiv);=0A=
					cover.css({left: -borders[0], top: -borders[1],=0A=
						width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()});=0A=
				}=0A=
			};=0A=
			inst.dpDiv.zIndex($(input).zIndex()+1);=0A=
			$.datepicker._datepickerShowing =3D true;=0A=
			if ($.effects && $.effects[showAnim])=0A=
				inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), =
duration, postProcess);=0A=
			else=0A=
				inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), =
postProcess);=0A=
			if (!showAnim || !duration)=0A=
				postProcess();=0A=
			if (inst.input.is(':visible') && !inst.input.is(':disabled'))=0A=
				inst.input.focus();=0A=
			$.datepicker._curInst =3D inst;=0A=
		}=0A=
	},=0A=
=0A=
	/* Generate the date picker content. */=0A=
	_updateDatepicker: function(inst) {=0A=
		var self =3D this;=0A=
		var borders =3D $.datepicker._getBorders(inst.dpDiv);=0A=
		instActive =3D inst; // for delegate hover events=0A=
		inst.dpDiv.empty().append(this._generateHTML(inst));=0A=
		var cover =3D inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- =
only=0A=
		if( !!cover.length ){ //avoid call to outerXXXX() when not in IE6=0A=
			cover.css({left: -borders[0], top: -borders[1], width: =
inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()})=0A=
		}=0A=
		inst.dpDiv.find('.' + this._dayOverClass + ' a').mouseover();=0A=
		var numMonths =3D this._getNumberOfMonths(inst);=0A=
		var cols =3D numMonths[1];=0A=
		var width =3D 17;=0A=
		inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 =
ui-datepicker-multi-4').width('');=0A=
		if (cols > 1)=0A=
			inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', =
(width * cols) + 'em');=0A=
		inst.dpDiv[(numMonths[0] !=3D 1 || numMonths[1] !=3D 1 ? 'add' : =
'remove') +=0A=
			'Class']('ui-datepicker-multi');=0A=
		inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +=0A=
			'Class']('ui-datepicker-rtl');=0A=
		if (inst =3D=3D $.datepicker._curInst && =
$.datepicker._datepickerShowing && inst.input &&=0A=
				// #6694 - don't focus the input if it's already focused=0A=
				// this breaks the change event in IE=0A=
				inst.input.is(':visible') && !inst.input.is(':disabled') && =
inst.input[0] !=3D document.activeElement)=0A=
			inst.input.focus();=0A=
		// deffered render of the years select (to avoid flashes on Firefox) =0A=
		if( inst.yearshtml ){=0A=
			var origyearshtml =3D inst.yearshtml;=0A=
			setTimeout(function(){=0A=
				//assure that inst.yearshtml didn't change.=0A=
				if( origyearshtml =3D=3D=3D inst.yearshtml && inst.yearshtml ){=0A=
					=
inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.years=
html);=0A=
				}=0A=
				origyearshtml =3D inst.yearshtml =3D null;=0A=
			}, 0);=0A=
		}=0A=
	},=0A=
=0A=
	/* Retrieve the size of left and top borders for an element.=0A=
	   @param  elem  (jQuery object) the element of interest=0A=
	   @return  (number[2]) the left and top borders */=0A=
	_getBorders: function(elem) {=0A=
		var convert =3D function(value) {=0A=
			return {thin: 1, medium: 2, thick: 3}[value] || value;=0A=
		};=0A=
		return [parseFloat(convert(elem.css('border-left-width'))),=0A=
			parseFloat(convert(elem.css('border-top-width')))];=0A=
	},=0A=
=0A=
	/* Check positioning to remain on screen. */=0A=
	_checkOffset: function(inst, offset, isFixed) {=0A=
		var dpWidth =3D inst.dpDiv.outerWidth();=0A=
		var dpHeight =3D inst.dpDiv.outerHeight();=0A=
		var inputWidth =3D inst.input ? inst.input.outerWidth() : 0;=0A=
		var inputHeight =3D inst.input ? inst.input.outerHeight() : 0;=0A=
		var viewWidth =3D document.documentElement.clientWidth + =
$(document).scrollLeft();=0A=
		var viewHeight =3D document.documentElement.clientHeight + =
$(document).scrollTop();=0A=
=0A=
		offset.left -=3D (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : =
0);=0A=
		offset.left -=3D (isFixed && offset.left =3D=3D =
inst.input.offset().left) ? $(document).scrollLeft() : 0;=0A=
		offset.top -=3D (isFixed && offset.top =3D=3D (inst.input.offset().top =
+ inputHeight)) ? $(document).scrollTop() : 0;=0A=
=0A=
		// now check if datepicker is showing outside window viewport - move =
to a better place if so.=0A=
		offset.left -=3D Math.min(offset.left, (offset.left + dpWidth > =
viewWidth && viewWidth > dpWidth) ?=0A=
			Math.abs(offset.left + dpWidth - viewWidth) : 0);=0A=
		offset.top -=3D Math.min(offset.top, (offset.top + dpHeight > =
viewHeight && viewHeight > dpHeight) ?=0A=
			Math.abs(dpHeight + inputHeight) : 0);=0A=
=0A=
		return offset;=0A=
	},=0A=
=0A=
	/* Find an object's position on the screen. */=0A=
	_findPos: function(obj) {=0A=
		var inst =3D this._getInst(obj);=0A=
		var isRTL =3D this._get(inst, 'isRTL');=0A=
        while (obj && (obj.type =3D=3D 'hidden' || obj.nodeType !=3D 1 =
|| $.expr.filters.hidden(obj))) {=0A=
            obj =3D obj[isRTL ? 'previousSibling' : 'nextSibling'];=0A=
        }=0A=
        var position =3D $(obj).offset();=0A=
	    return [position.left, position.top];=0A=
	},=0A=
=0A=
	/* Hide the date picker from view.=0A=
	   @param  input  element - the input field attached to the date picker =
*/=0A=
	_hideDatepicker: function(input) {=0A=
		var inst =3D this._curInst;=0A=
		if (!inst || (input && inst !=3D $.data(input, PROP_NAME)))=0A=
			return;=0A=
		if (this._datepickerShowing) {=0A=
			var showAnim =3D this._get(inst, 'showAnim');=0A=
			var duration =3D this._get(inst, 'duration');=0A=
			var postProcess =3D function() {=0A=
				$.datepicker._tidyDialog(inst);=0A=
				this._curInst =3D null;=0A=
			};=0A=
			if ($.effects && $.effects[showAnim])=0A=
				inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), =
duration, postProcess);=0A=
			else=0A=
				inst.dpDiv[(showAnim =3D=3D 'slideDown' ? 'slideUp' :=0A=
					(showAnim =3D=3D 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? =
duration : null), postProcess);=0A=
			if (!showAnim)=0A=
				postProcess();=0A=
			var onClose =3D this._get(inst, 'onClose');=0A=
			if (onClose)=0A=
				onClose.apply((inst.input ? inst.input[0] : null),=0A=
					[(inst.input ? inst.input.val() : ''), inst]);  // trigger custom =
callback=0A=
			this._datepickerShowing =3D false;=0A=
			this._lastInput =3D null;=0A=
			if (this._inDialog) {=0A=
				this._dialogInput.css({ position: 'absolute', left: '0', top: =
'-100px' });=0A=
				if ($.blockUI) {=0A=
					$.unblockUI();=0A=
					$('body').append(this.dpDiv);=0A=
				}=0A=
			}=0A=
			this._inDialog =3D false;=0A=
		}=0A=
	},=0A=
=0A=
	/* Tidy up after a dialog display. */=0A=
	_tidyDialog: function(inst) {=0A=
		=
inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar=
');=0A=
	},=0A=
=0A=
	/* Close date picker if clicked elsewhere. */=0A=
	_checkExternalClick: function(event) {=0A=
		if (!$.datepicker._curInst)=0A=
			return;=0A=
		var $target =3D $(event.target);=0A=
		if ($target[0].id !=3D $.datepicker._mainDivId &&=0A=
				$target.parents('#' + $.datepicker._mainDivId).length =3D=3D 0 &&=0A=
				!$target.hasClass($.datepicker.markerClassName) &&=0A=
				!$target.hasClass($.datepicker._triggerClass) &&=0A=
				$.datepicker._datepickerShowing && !($.datepicker._inDialog && =
$.blockUI))=0A=
			$.datepicker._hideDatepicker();=0A=
	},=0A=
=0A=
	/* Adjust one of the date sub-fields. */=0A=
	_adjustDate: function(id, offset, period) {=0A=
		var target =3D $(id);=0A=
		var inst =3D this._getInst(target[0]);=0A=
		if (this._isDisabledDatepicker(target[0])) {=0A=
			return;=0A=
		}=0A=
		this._adjustInstDate(inst, offset +=0A=
			(period =3D=3D 'M' ? this._get(inst, 'showCurrentAtPos') : 0), // =
undo positioning=0A=
			period);=0A=
		this._updateDatepicker(inst);=0A=
	},=0A=
=0A=
	/* Action for current link. */=0A=
	_gotoToday: function(id) {=0A=
		var target =3D $(id);=0A=
		var inst =3D this._getInst(target[0]);=0A=
		if (this._get(inst, 'gotoCurrent') && inst.currentDay) {=0A=
			inst.selectedDay =3D inst.currentDay;=0A=
			inst.drawMonth =3D inst.selectedMonth =3D inst.currentMonth;=0A=
			inst.drawYear =3D inst.selectedYear =3D inst.currentYear;=0A=
		}=0A=
		else {=0A=
			var date =3D new Date();=0A=
			inst.selectedDay =3D date.getDate();=0A=
			inst.drawMonth =3D inst.selectedMonth =3D date.getMonth();=0A=
			inst.drawYear =3D inst.selectedYear =3D date.getFullYear();=0A=
		}=0A=
		this._notifyChange(inst);=0A=
		this._adjustDate(target);=0A=
	},=0A=
=0A=
	/* Action for selecting a new month/year. */=0A=
	_selectMonthYear: function(id, select, period) {=0A=
		var target =3D $(id);=0A=
		var inst =3D this._getInst(target[0]);=0A=
		inst._selectingMonthYear =3D false;=0A=
		inst['selected' + (period =3D=3D 'M' ? 'Month' : 'Year')] =3D=0A=
		inst['draw' + (period =3D=3D 'M' ? 'Month' : 'Year')] =3D=0A=
			parseInt(select.options[select.selectedIndex].value,10);=0A=
		this._notifyChange(inst);=0A=
		this._adjustDate(target);=0A=
	},=0A=
=0A=
	/* Restore input focus after not changing month/year. */=0A=
	_clickMonthYear: function(id) {=0A=
		var target =3D $(id);=0A=
		var inst =3D this._getInst(target[0]);=0A=
		if (inst.input && inst._selectingMonthYear) {=0A=
			setTimeout(function() {=0A=
				inst.input.focus();=0A=
			}, 0);=0A=
		}=0A=
		inst._selectingMonthYear =3D !inst._selectingMonthYear;=0A=
	},=0A=
=0A=
	/* Action for selecting a day. */=0A=
	_selectDay: function(id, month, year, td) {=0A=
		var target =3D $(id);=0A=
		if ($(td).hasClass(this._unselectableClass) || =
this._isDisabledDatepicker(target[0])) {=0A=
			return;=0A=
		}=0A=
		var inst =3D this._getInst(target[0]);=0A=
		inst.selectedDay =3D inst.currentDay =3D $('a', td).html();=0A=
		inst.selectedMonth =3D inst.currentMonth =3D month;=0A=
		inst.selectedYear =3D inst.currentYear =3D year;=0A=
		this._selectDate(id, this._formatDate(inst,=0A=
			inst.currentDay, inst.currentMonth, inst.currentYear));=0A=
	},=0A=
=0A=
	/* Erase the input field and hide the date picker. */=0A=
	_clearDate: function(id) {=0A=
		var target =3D $(id);=0A=
		var inst =3D this._getInst(target[0]);=0A=
		this._selectDate(target, '');=0A=
	},=0A=
=0A=
	/* Update the input field with the selected date. */=0A=
	_selectDate: function(id, dateStr) {=0A=
		var target =3D $(id);=0A=
		var inst =3D this._getInst(target[0]);=0A=
		dateStr =3D (dateStr !=3D null ? dateStr : this._formatDate(inst));=0A=
		if (inst.input)=0A=
			inst.input.val(dateStr);=0A=
		this._updateAlternate(inst);=0A=
		var onSelect =3D this._get(inst, 'onSelect');=0A=
		if (onSelect)=0A=
			onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); =
 // trigger custom callback=0A=
		else if (inst.input)=0A=
			inst.input.trigger('change'); // fire the change event=0A=
		if (inst.inline)=0A=
			this._updateDatepicker(inst);=0A=
		else {=0A=
			this._hideDatepicker();=0A=
			this._lastInput =3D inst.input[0];=0A=
			if (typeof(inst.input[0]) !=3D 'object')=0A=
				inst.input.focus(); // restore focus=0A=
			this._lastInput =3D null;=0A=
		}=0A=
	},=0A=
=0A=
	/* Update any alternate field to synchronise with the main field. */=0A=
	_updateAlternate: function(inst) {=0A=
		var altField =3D this._get(inst, 'altField');=0A=
		if (altField) { // update alternate field too=0A=
			var altFormat =3D this._get(inst, 'altFormat') || this._get(inst, =
'dateFormat');=0A=
			var date =3D this._getDate(inst);=0A=
			var dateStr =3D this.formatDate(altFormat, date, =
this._getFormatConfig(inst));=0A=
			$(altField).each(function() { $(this).val(dateStr); });=0A=
		}=0A=
	},=0A=
=0A=
	/* Set as beforeShowDay function to prevent selection of weekends.=0A=
	   @param  date  Date - the date to customise=0A=
	   @return [boolean, string] - is this date selectable?, what is its =
CSS class? */=0A=
	noWeekends: function(date) {=0A=
		var day =3D date.getDay();=0A=
		return [(day > 0 && day < 6), ''];=0A=
	},=0A=
=0A=
	/* Set as calculateWeek to determine the week of the year based on the =
ISO 8601 definition.=0A=
	   @param  date  Date - the date to get the week for=0A=
	   @return  number - the number of the week within the year that =
contains this date */=0A=
	iso8601Week: function(date) {=0A=
		var checkDate =3D new Date(date.getTime());=0A=
		// Find Thursday of this week starting on Monday=0A=
		checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));=0A=
		var time =3D checkDate.getTime();=0A=
		checkDate.setMonth(0); // Compare with Jan 1=0A=
		checkDate.setDate(1);=0A=
		return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;=0A=
	},=0A=
=0A=
	/* Parse a string value into a date object.=0A=
	   See formatDate below for the possible formats.=0A=
=0A=
	   @param  format    string - the expected format of the date=0A=
	   @param  value     string - the date in the above format=0A=
	   @param  settings  Object - attributes include:=0A=
	                     shortYearCutoff  number - the cutoff year for =
determining the century (optional)=0A=
	                     dayNamesShort    string[7] - abbreviated names of =
the days from Sunday (optional)=0A=
	                     dayNames         string[7] - names of the days =
from Sunday (optional)=0A=
	                     monthNamesShort  string[12] - abbreviated names of =
the months (optional)=0A=
	                     monthNames       string[12] - names of the months =
(optional)=0A=
	   @return  Date - the extracted date value or null if value is blank */=0A=
	parseDate: function (format, value, settings) {=0A=
		if (format =3D=3D null || value =3D=3D null)=0A=
			throw 'Invalid arguments';=0A=
		value =3D (typeof value =3D=3D 'object' ? value.toString() : value + =
'');=0A=
		if (value =3D=3D '')=0A=
			return null;=0A=
		var shortYearCutoff =3D (settings ? settings.shortYearCutoff : null) =
|| this._defaults.shortYearCutoff;=0A=
		shortYearCutoff =3D (typeof shortYearCutoff !=3D 'string' ? =
shortYearCutoff :=0A=
				new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));=0A=
		var dayNamesShort =3D (settings ? settings.dayNamesShort : null) || =
this._defaults.dayNamesShort;=0A=
		var dayNames =3D (settings ? settings.dayNames : null) || =
this._defaults.dayNames;=0A=
		var monthNamesShort =3D (settings ? settings.monthNamesShort : null) =
|| this._defaults.monthNamesShort;=0A=
		var monthNames =3D (settings ? settings.monthNames : null) || =
this._defaults.monthNames;=0A=
		var year =3D -1;=0A=
		var month =3D -1;=0A=
		var day =3D -1;=0A=
		var doy =3D -1;=0A=
		var literal =3D false;=0A=
		// Check whether a format character is doubled=0A=
		var lookAhead =3D function(match) {=0A=
			var matches =3D (iFormat + 1 < format.length && format.charAt(iFormat =
+ 1) =3D=3D match);=0A=
			if (matches)=0A=
				iFormat++;=0A=
			return matches;=0A=
		};=0A=
		// Extract a number from the string value=0A=
		var getNumber =3D function(match) {=0A=
			var isDoubled =3D lookAhead(match);=0A=
			var size =3D (match =3D=3D '@' ? 14 : (match =3D=3D '!' ? 20 :=0A=
				(match =3D=3D 'y' && isDoubled ? 4 : (match =3D=3D 'o' ? 3 : 2))));=0A=
			var digits =3D new RegExp('^\\d{1,' + size + '}');=0A=
			var num =3D value.substring(iValue).match(digits);=0A=
			if (!num)=0A=
				throw 'Missing number at position ' + iValue;=0A=
			iValue +=3D num[0].length;=0A=
			return parseInt(num[0], 10);=0A=
		};=0A=
		// Extract a name from the string value and convert to an index=0A=
		var getName =3D function(match, shortNames, longNames) {=0A=
			var names =3D $.map(lookAhead(match) ? longNames : shortNames, =
function (v, k) {=0A=
				return [ [k, v] ];=0A=
			}).sort(function (a, b) {=0A=
				return -(a[1].length - b[1].length);=0A=
			});=0A=
			var index =3D -1;=0A=
			$.each(names, function (i, pair) {=0A=
				var name =3D pair[1];=0A=
				if (value.substr(iValue, name.length).toLowerCase() =3D=3D =
name.toLowerCase()) {=0A=
					index =3D pair[0];=0A=
					iValue +=3D name.length;=0A=
					return false;=0A=
				}=0A=
			});=0A=
			if (index !=3D -1)=0A=
				return index + 1;=0A=
			else=0A=
				throw 'Unknown name at position ' + iValue;=0A=
		};=0A=
		// Confirm that a literal character matches the string value=0A=
		var checkLiteral =3D function() {=0A=
			if (value.charAt(iValue) !=3D format.charAt(iFormat))=0A=
				throw 'Unexpected literal at position ' + iValue;=0A=
			iValue++;=0A=
		};=0A=
		var iValue =3D 0;=0A=
		for (var iFormat =3D 0; iFormat < format.length; iFormat++) {=0A=
			if (literal)=0A=
				if (format.charAt(iFormat) =3D=3D "'" && !lookAhead("'"))=0A=
					literal =3D false;=0A=
				else=0A=
					checkLiteral();=0A=
			else=0A=
				switch (format.charAt(iFormat)) {=0A=
					case 'd':=0A=
						day =3D getNumber('d');=0A=
						break;=0A=
					case 'D':=0A=
						getName('D', dayNamesShort, dayNames);=0A=
						break;=0A=
					case 'o':=0A=
						doy =3D getNumber('o');=0A=
						break;=0A=
					case 'm':=0A=
						month =3D getNumber('m');=0A=
						break;=0A=
					case 'M':=0A=
						month =3D getName('M', monthNamesShort, monthNames);=0A=
						break;=0A=
					case 'y':=0A=
						year =3D getNumber('y');=0A=
						break;=0A=
					case '@':=0A=
						var date =3D new Date(getNumber('@'));=0A=
						year =3D date.getFullYear();=0A=
						month =3D date.getMonth() + 1;=0A=
						day =3D date.getDate();=0A=
						break;=0A=
					case '!':=0A=
						var date =3D new Date((getNumber('!') - this._ticksTo1970) / =
10000);=0A=
						year =3D date.getFullYear();=0A=
						month =3D date.getMonth() + 1;=0A=
						day =3D date.getDate();=0A=
						break;=0A=
					case "'":=0A=
						if (lookAhead("'"))=0A=
							checkLiteral();=0A=
						else=0A=
							literal =3D true;=0A=
						break;=0A=
					default:=0A=
						checkLiteral();=0A=
				}=0A=
		}=0A=
		if (year =3D=3D -1)=0A=
			year =3D new Date().getFullYear();=0A=
		else if (year < 100)=0A=
			year +=3D new Date().getFullYear() - new Date().getFullYear() % 100 +=0A=
				(year <=3D shortYearCutoff ? 0 : -100);=0A=
		if (doy > -1) {=0A=
			month =3D 1;=0A=
			day =3D doy;=0A=
			do {=0A=
				var dim =3D this._getDaysInMonth(year, month - 1);=0A=
				if (day <=3D dim)=0A=
					break;=0A=
				month++;=0A=
				day -=3D dim;=0A=
			} while (true);=0A=
		}=0A=
		var date =3D this._daylightSavingAdjust(new Date(year, month - 1, =
day));=0A=
		if (date.getFullYear() !=3D year || date.getMonth() + 1 !=3D month || =
date.getDate() !=3D day)=0A=
			throw 'Invalid date'; // E.g. 31/02/00=0A=
		return date;=0A=
	},=0A=
=0A=
	/* Standard date formats. */=0A=
	ATOM: 'yy-mm-dd', // RFC 3339 (ISO 8601)=0A=
	COOKIE: 'D, dd M yy',=0A=
	ISO_8601: 'yy-mm-dd',=0A=
	RFC_822: 'D, d M y',=0A=
	RFC_850: 'DD, dd-M-y',=0A=
	RFC_1036: 'D, d M y',=0A=
	RFC_1123: 'D, d M yy',=0A=
	RFC_2822: 'D, d M yy',=0A=
	RSS: 'D, d M y', // RFC 822=0A=
	TICKS: '!',=0A=
	TIMESTAMP: '@',=0A=
	W3C: 'yy-mm-dd', // ISO 8601=0A=
=0A=
	_ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - =
Math.floor(1970 / 100) +=0A=
		Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),=0A=
=0A=
	/* Format a date object into a string value.=0A=
	   The format can be combinations of the following:=0A=
	   d  - day of month (no leading zero)=0A=
	   dd - day of month (two digit)=0A=
	   o  - day of year (no leading zeros)=0A=
	   oo - day of year (three digit)=0A=
	   D  - day name short=0A=
	   DD - day name long=0A=
	   m  - month of year (no leading zero)=0A=
	   mm - month of year (two digit)=0A=
	   M  - month name short=0A=
	   MM - month name long=0A=
	   y  - year (two digit)=0A=
	   yy - year (four digit)=0A=
	   @ - Unix timestamp (ms since 01/01/1970)=0A=
	   ! - Windows ticks (100ns since 01/01/0001)=0A=
	   '...' - literal text=0A=
	   '' - single quote=0A=
=0A=
	   @param  format    string - the desired format of the date=0A=
	   @param  date      Date - the date value to format=0A=
	   @param  settings  Object - attributes include:=0A=
	                     dayNamesShort    string[7] - abbreviated names of =
the days from Sunday (optional)=0A=
	                     dayNames         string[7] - names of the days =
from Sunday (optional)=0A=
	                     monthNamesShort  string[12] - abbreviated names of =
the months (optional)=0A=
	                     monthNames       string[12] - names of the months =
(optional)=0A=
	   @return  string - the date in the above format */=0A=
	formatDate: function (format, date, settings) {=0A=
		if (!date)=0A=
			return '';=0A=
		var dayNamesShort =3D (settings ? settings.dayNamesShort : null) || =
this._defaults.dayNamesShort;=0A=
		var dayNames =3D (settings ? settings.dayNames : null) || =
this._defaults.dayNames;=0A=
		var monthNamesShort =3D (settings ? settings.monthNamesShort : null) =
|| this._defaults.monthNamesShort;=0A=
		var monthNames =3D (settings ? settings.monthNames : null) || =
this._defaults.monthNames;=0A=
		// Check whether a format character is doubled=0A=
		var lookAhead =3D function(match) {=0A=
			var matches =3D (iFormat + 1 < format.length && format.charAt(iFormat =
+ 1) =3D=3D match);=0A=
			if (matches)=0A=
				iFormat++;=0A=
			return matches;=0A=
		};=0A=
		// Format a number, with leading zero if necessary=0A=
		var formatNumber =3D function(match, value, len) {=0A=
			var num =3D '' + value;=0A=
			if (lookAhead(match))=0A=
				while (num.length < len)=0A=
					num =3D '0' + num;=0A=
			return num;=0A=
		};=0A=
		// Format a name, short or long as requested=0A=
		var formatName =3D function(match, value, shortNames, longNames) {=0A=
			return (lookAhead(match) ? longNames[value] : shortNames[value]);=0A=
		};=0A=
		var output =3D '';=0A=
		var literal =3D false;=0A=
		if (date)=0A=
			for (var iFormat =3D 0; iFormat < format.length; iFormat++) {=0A=
				if (literal)=0A=
					if (format.charAt(iFormat) =3D=3D "'" && !lookAhead("'"))=0A=
						literal =3D false;=0A=
					else=0A=
						output +=3D format.charAt(iFormat);=0A=
				else=0A=
					switch (format.charAt(iFormat)) {=0A=
						case 'd':=0A=
							output +=3D formatNumber('d', date.getDate(), 2);=0A=
							break;=0A=
						case 'D':=0A=
							output +=3D formatName('D', date.getDay(), dayNamesShort, =
dayNames);=0A=
							break;=0A=
						case 'o':=0A=
							output +=3D formatNumber('o',=0A=
								(date.getTime() - new Date(date.getFullYear(), 0, 0).getTime()) =
/ 86400000, 3);=0A=
							break;=0A=
						case 'm':=0A=
							output +=3D formatNumber('m', date.getMonth() + 1, 2);=0A=
							break;=0A=
						case 'M':=0A=
							output +=3D formatName('M', date.getMonth(), monthNamesShort, =
monthNames);=0A=
							break;=0A=
						case 'y':=0A=
							output +=3D (lookAhead('y') ? date.getFullYear() :=0A=
								(date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100);=0A=
							break;=0A=
						case '@':=0A=
							output +=3D date.getTime();=0A=
							break;=0A=
						case '!':=0A=
							output +=3D date.getTime() * 10000 + this._ticksTo1970;=0A=
							break;=0A=
						case "'":=0A=
							if (lookAhead("'"))=0A=
								output +=3D "'";=0A=
							else=0A=
								literal =3D true;=0A=
							break;=0A=
						default:=0A=
							output +=3D format.charAt(iFormat);=0A=
					}=0A=
			}=0A=
		return output;=0A=
	},=0A=
=0A=
	/* Extract all possible characters from the date format. */=0A=
	_possibleChars: function (format) {=0A=
		var chars =3D '';=0A=
		var literal =3D false;=0A=
		// Check whether a format character is doubled=0A=
		var lookAhead =3D function(match) {=0A=
			var matches =3D (iFormat + 1 < format.length && format.charAt(iFormat =
+ 1) =3D=3D match);=0A=
			if (matches)=0A=
				iFormat++;=0A=
			return matches;=0A=
		};=0A=
		for (var iFormat =3D 0; iFormat < format.length; iFormat++)=0A=
			if (literal)=0A=
				if (format.charAt(iFormat) =3D=3D "'" && !lookAhead("'"))=0A=
					literal =3D false;=0A=
				else=0A=
					chars +=3D format.charAt(iFormat);=0A=
			else=0A=
				switch (format.charAt(iFormat)) {=0A=
					case 'd': case 'm': case 'y': case '@':=0A=
						chars +=3D '0123456789';=0A=
						break;=0A=
					case 'D': case 'M':=0A=
						return null; // Accept anything=0A=
					case "'":=0A=
						if (lookAhead("'"))=0A=
							chars +=3D "'";=0A=
						else=0A=
							literal =3D true;=0A=
						break;=0A=
					default:=0A=
						chars +=3D format.charAt(iFormat);=0A=
				}=0A=
		return chars;=0A=
	},=0A=
=0A=
	/* Get a setting value, defaulting if necessary. */=0A=
	_get: function(inst, name) {=0A=
		return inst.settings[name] !=3D=3D undefined ?=0A=
			inst.settings[name] : this._defaults[name];=0A=
	},=0A=
=0A=
	/* Parse existing date and initialise date picker. */=0A=
	_setDateFromField: function(inst, noDefault) {=0A=
		if (inst.input.val() =3D=3D inst.lastVal) {=0A=
			return;=0A=
		}=0A=
		var dateFormat =3D this._get(inst, 'dateFormat');=0A=
		var dates =3D inst.lastVal =3D inst.input ? inst.input.val() : null;=0A=
		var date, defaultDate;=0A=
		date =3D defaultDate =3D this._getDefaultDate(inst);=0A=
		var settings =3D this._getFormatConfig(inst);=0A=
		try {=0A=
			date =3D this.parseDate(dateFormat, dates, settings) || defaultDate;=0A=
		} catch (event) {=0A=
			this.log(event);=0A=
			dates =3D (noDefault ? '' : dates);=0A=
		}=0A=
		inst.selectedDay =3D date.getDate();=0A=
		inst.drawMonth =3D inst.selectedMonth =3D date.getMonth();=0A=
		inst.drawYear =3D inst.selectedYear =3D date.getFullYear();=0A=
		inst.currentDay =3D (dates ? date.getDate() : 0);=0A=
		inst.currentMonth =3D (dates ? date.getMonth() : 0);=0A=
		inst.currentYear =3D (dates ? date.getFullYear() : 0);=0A=
		this._adjustInstDate(inst);=0A=
	},=0A=
=0A=
	/* Retrieve the default date shown on opening. */=0A=
	_getDefaultDate: function(inst) {=0A=
		return this._restrictMinMax(inst,=0A=
			this._determineDate(inst, this._get(inst, 'defaultDate'), new =
Date()));=0A=
	},=0A=
=0A=
	/* A date may be specified as an exact value or a relative one. */=0A=
	_determineDate: function(inst, date, defaultDate) {=0A=
		var offsetNumeric =3D function(offset) {=0A=
			var date =3D new Date();=0A=
			date.setDate(date.getDate() + offset);=0A=
			return date;=0A=
		};=0A=
		var offsetString =3D function(offset) {=0A=
			try {=0A=
				return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),=0A=
					offset, $.datepicker._getFormatConfig(inst));=0A=
			}=0A=
			catch (e) {=0A=
				// Ignore=0A=
			}=0A=
			var date =3D (offset.toLowerCase().match(/^c/) ?=0A=
				$.datepicker._getDate(inst) : null) || new Date();=0A=
			var year =3D date.getFullYear();=0A=
			var month =3D date.getMonth();=0A=
			var day =3D date.getDate();=0A=
			var pattern =3D /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;=0A=
			var matches =3D pattern.exec(offset);=0A=
			while (matches) {=0A=
				switch (matches[2] || 'd') {=0A=
					case 'd' : case 'D' :=0A=
						day +=3D parseInt(matches[1],10); break;=0A=
					case 'w' : case 'W' :=0A=
						day +=3D parseInt(matches[1],10) * 7; break;=0A=
					case 'm' : case 'M' :=0A=
						month +=3D parseInt(matches[1],10);=0A=
						day =3D Math.min(day, $.datepicker._getDaysInMonth(year, month));=0A=
						break;=0A=
					case 'y': case 'Y' :=0A=
						year +=3D parseInt(matches[1],10);=0A=
						day =3D Math.min(day, $.datepicker._getDaysInMonth(year, month));=0A=
						break;=0A=
				}=0A=
				matches =3D pattern.exec(offset);=0A=
			}=0A=
			return new Date(year, month, day);=0A=
		};=0A=
		var newDate =3D (date =3D=3D null || date =3D=3D=3D '' ? defaultDate : =
(typeof date =3D=3D 'string' ? offsetString(date) :=0A=
			(typeof date =3D=3D 'number' ? (isNaN(date) ? defaultDate : =
offsetNumeric(date)) : new Date(date.getTime()))));=0A=
		newDate =3D (newDate && newDate.toString() =3D=3D 'Invalid Date' ? =
defaultDate : newDate);=0A=
		if (newDate) {=0A=
			newDate.setHours(0);=0A=
			newDate.setMinutes(0);=0A=
			newDate.setSeconds(0);=0A=
			newDate.setMilliseconds(0);=0A=
		}=0A=
		return this._daylightSavingAdjust(newDate);=0A=
	},=0A=
=0A=
	/* Handle switch to/from daylight saving.=0A=
	   Hours may be non-zero on daylight saving cut-over:=0A=
	   > 12 when midnight changeover, but then cannot generate=0A=
	   midnight datetime, so jump to 1AM, otherwise reset.=0A=
	   @param  date  (Date) the date to check=0A=
	   @return  (Date) the corrected date */=0A=
	_daylightSavingAdjust: function(date) {=0A=
		if (!date) return null;=0A=
		date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);=0A=
		return date;=0A=
	},=0A=
=0A=
	/* Set the date(s) directly. */=0A=
	_setDate: function(inst, date, noChange) {=0A=
		var clear =3D !date;=0A=
		var origMonth =3D inst.selectedMonth;=0A=
		var origYear =3D inst.selectedYear;=0A=
		var newDate =3D this._restrictMinMax(inst, this._determineDate(inst, =
date, new Date()));=0A=
		inst.selectedDay =3D inst.currentDay =3D newDate.getDate();=0A=
		inst.drawMonth =3D inst.selectedMonth =3D inst.currentMonth =3D =
newDate.getMonth();=0A=
		inst.drawYear =3D inst.selectedYear =3D inst.currentYear =3D =
newDate.getFullYear();=0A=
		if ((origMonth !=3D inst.selectedMonth || origYear !=3D =
inst.selectedYear) && !noChange)=0A=
			this._notifyChange(inst);=0A=
		this._adjustInstDate(inst);=0A=
		if (inst.input) {=0A=
			inst.input.val(clear ? '' : this._formatDate(inst));=0A=
		}=0A=
	},=0A=
=0A=
	/* Retrieve the date(s) directly. */=0A=
	_getDate: function(inst) {=0A=
		var startDate =3D (!inst.currentYear || (inst.input && =
inst.input.val() =3D=3D '') ? null :=0A=
			this._daylightSavingAdjust(new Date(=0A=
			inst.currentYear, inst.currentMonth, inst.currentDay)));=0A=
			return startDate;=0A=
	},=0A=
=0A=
	/* Generate the HTML for the current state of the date picker. */=0A=
	_generateHTML: function(inst) {=0A=
		var today =3D new Date();=0A=
		today =3D this._daylightSavingAdjust(=0A=
			new Date(today.getFullYear(), today.getMonth(), today.getDate())); // =
clear time=0A=
		var isRTL =3D this._get(inst, 'isRTL');=0A=
		var showButtonPanel =3D this._get(inst, 'showButtonPanel');=0A=
		var hideIfNoPrevNext =3D this._get(inst, 'hideIfNoPrevNext');=0A=
		var navigationAsDateFormat =3D this._get(inst, =
'navigationAsDateFormat');=0A=
		var numMonths =3D this._getNumberOfMonths(inst);=0A=
		var showCurrentAtPos =3D this._get(inst, 'showCurrentAtPos');=0A=
		var stepMonths =3D this._get(inst, 'stepMonths');=0A=
		var isMultiMonth =3D (numMonths[0] !=3D 1 || numMonths[1] !=3D 1);=0A=
		var currentDate =3D this._daylightSavingAdjust((!inst.currentDay ? new =
Date(9999, 9, 9) :=0A=
			new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));=0A=
		var minDate =3D this._getMinMaxDate(inst, 'min');=0A=
		var maxDate =3D this._getMinMaxDate(inst, 'max');=0A=
		var drawMonth =3D inst.drawMonth - showCurrentAtPos;=0A=
		var drawYear =3D inst.drawYear;=0A=
		if (drawMonth < 0) {=0A=
			drawMonth +=3D 12;=0A=
			drawYear--;=0A=
		}=0A=
		if (maxDate) {=0A=
			var maxDraw =3D this._daylightSavingAdjust(new =
Date(maxDate.getFullYear(),=0A=
				maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, =
maxDate.getDate()));=0A=
			maxDraw =3D (minDate && maxDraw < minDate ? minDate : maxDraw);=0A=
			while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > =
maxDraw) {=0A=
				drawMonth--;=0A=
				if (drawMonth < 0) {=0A=
					drawMonth =3D 11;=0A=
					drawYear--;=0A=
				}=0A=
			}=0A=
		}=0A=
		inst.drawMonth =3D drawMonth;=0A=
		inst.drawYear =3D drawYear;=0A=
		var prevText =3D this._get(inst, 'prevText');=0A=
		prevText =3D (!navigationAsDateFormat ? prevText : =
this.formatDate(prevText,=0A=
			this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, =
1)),=0A=
			this._getFormatConfig(inst)));=0A=
		var prev =3D (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?=0A=
			'<a class=3D"ui-datepicker-prev ui-corner-all" onclick=3D"DP_jQuery_' =
+ dpuuid +=0A=
			'.datepicker._adjustDate(\'#' + inst.id + '\', -' + stepMonths + ', =
\'M\');"' +=0A=
			' title=3D"' + prevText + '"><span class=3D"ui-icon =
ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + =
'</span></a>' :=0A=
			(hideIfNoPrevNext ? '' : '<a class=3D"ui-datepicker-prev =
ui-corner-all ui-state-disabled" title=3D"'+ prevText +'"><span =
class=3D"ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' =
+ prevText + '</span></a>'));=0A=
		var nextText =3D this._get(inst, 'nextText');=0A=
		nextText =3D (!navigationAsDateFormat ? nextText : =
this.formatDate(nextText,=0A=
			this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, =
1)),=0A=
			this._getFormatConfig(inst)));=0A=
		var next =3D (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?=0A=
			'<a class=3D"ui-datepicker-next ui-corner-all" onclick=3D"DP_jQuery_' =
+ dpuuid +=0A=
			'.datepicker._adjustDate(\'#' + inst.id + '\', +' + stepMonths + ', =
\'M\');"' +=0A=
			' title=3D"' + nextText + '"><span class=3D"ui-icon =
ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + =
'</span></a>' :=0A=
			(hideIfNoPrevNext ? '' : '<a class=3D"ui-datepicker-next =
ui-corner-all ui-state-disabled" title=3D"'+ nextText + '"><span =
class=3D"ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' =
+ nextText + '</span></a>'));=0A=
		var currentText =3D this._get(inst, 'currentText');=0A=
		var gotoDate =3D (this._get(inst, 'gotoCurrent') && inst.currentDay ? =
currentDate : today);=0A=
		currentText =3D (!navigationAsDateFormat ? currentText :=0A=
			this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));=0A=
		var controls =3D (!inst.inline ? '<button type=3D"button" =
class=3D"ui-datepicker-close ui-state-default ui-priority-primary =
ui-corner-all" onclick=3D"DP_jQuery_' + dpuuid +=0A=
			'.datepicker._hideDatepicker();">' + this._get(inst, 'closeText') + =
'</button>' : '');=0A=
		var buttonPanel =3D (showButtonPanel) ? '<div =
class=3D"ui-datepicker-buttonpane ui-widget-content">' + (isRTL ? =
controls : '') +=0A=
			(this._isInRange(inst, gotoDate) ? '<button type=3D"button" =
class=3D"ui-datepicker-current ui-state-default ui-priority-secondary =
ui-corner-all" onclick=3D"DP_jQuery_' + dpuuid +=0A=
			'.datepicker._gotoToday(\'#' + inst.id + '\');"' +=0A=
			'>' + currentText + '</button>' : '') + (isRTL ? '' : controls) + =
'</div>' : '';=0A=
		var firstDay =3D parseInt(this._get(inst, 'firstDay'),10);=0A=
		firstDay =3D (isNaN(firstDay) ? 0 : firstDay);=0A=
		var showWeek =3D this._get(inst, 'showWeek');=0A=
		var dayNames =3D this._get(inst, 'dayNames');=0A=
		var dayNamesShort =3D this._get(inst, 'dayNamesShort');=0A=
		var dayNamesMin =3D this._get(inst, 'dayNamesMin');=0A=
		var monthNames =3D this._get(inst, 'monthNames');=0A=
		var monthNamesShort =3D this._get(inst, 'monthNamesShort');=0A=
		var beforeShowDay =3D this._get(inst, 'beforeShowDay');=0A=
		var showOtherMonths =3D this._get(inst, 'showOtherMonths');=0A=
		var selectOtherMonths =3D this._get(inst, 'selectOtherMonths');=0A=
		var calculateWeek =3D this._get(inst, 'calculateWeek') || =
this.iso8601Week;=0A=
		var defaultDate =3D this._getDefaultDate(inst);=0A=
		var html =3D '';=0A=
		for (var row =3D 0; row < numMonths[0]; row++) {=0A=
			var group =3D '';=0A=
			for (var col =3D 0; col < numMonths[1]; col++) {=0A=
				var selectedDate =3D this._daylightSavingAdjust(new Date(drawYear, =
drawMonth, inst.selectedDay));=0A=
				var cornerClass =3D ' ui-corner-all';=0A=
				var calender =3D '';=0A=
				if (isMultiMonth) {=0A=
					calender +=3D '<div class=3D"ui-datepicker-group';=0A=
					if (numMonths[1] > 1)=0A=
						switch (col) {=0A=
							case 0: calender +=3D ' ui-datepicker-group-first';=0A=
								cornerClass =3D ' ui-corner-' + (isRTL ? 'right' : 'left'); =
break;=0A=
							case numMonths[1]-1: calender +=3D ' ui-datepicker-group-last';=0A=
								cornerClass =3D ' ui-corner-' + (isRTL ? 'left' : 'right'); =
break;=0A=
							default: calender +=3D ' ui-datepicker-group-middle'; cornerClass =
=3D ''; break;=0A=
						}=0A=
					calender +=3D '">';=0A=
				}=0A=
				calender +=3D '<div class=3D"ui-datepicker-header ui-widget-header =
ui-helper-clearfix' + cornerClass + '">' +=0A=
					(/all|left/.test(cornerClass) && row =3D=3D 0 ? (isRTL ? next : =
prev) : '') +=0A=
					(/all|right/.test(cornerClass) && row =3D=3D 0 ? (isRTL ? prev : =
next) : '') +=0A=
					this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, =
maxDate,=0A=
					row > 0 || col > 0, monthNames, monthNamesShort) + // draw month =
headers=0A=
					'</div><table class=3D"ui-datepicker-calendar"><thead>' +=0A=
					'<tr>';=0A=
				var thead =3D (showWeek ? '<th class=3D"ui-datepicker-week-col">' + =
this._get(inst, 'weekHeader') + '</th>' : '');=0A=
				for (var dow =3D 0; dow < 7; dow++) { // days of the week=0A=
					var day =3D (dow + firstDay) % 7;=0A=
					thead +=3D '<th' + ((dow + firstDay + 6) % 7 >=3D 5 ? ' =
class=3D"ui-datepicker-week-end"' : '') + '>' +=0A=
						'<span title=3D"' + dayNames[day] + '">' + dayNamesMin[day] + =
'</span></th>';=0A=
				}=0A=
				calender +=3D thead + '</tr></thead><tbody>';=0A=
				var daysInMonth =3D this._getDaysInMonth(drawYear, drawMonth);=0A=
				if (drawYear =3D=3D inst.selectedYear && drawMonth =3D=3D =
inst.selectedMonth)=0A=
					inst.selectedDay =3D Math.min(inst.selectedDay, daysInMonth);=0A=
				var leadDays =3D (this._getFirstDayOfMonth(drawYear, drawMonth) - =
firstDay + 7) % 7;=0A=
				var numRows =3D (isMultiMonth ? 6 : Math.ceil((leadDays + =
daysInMonth) / 7)); // calculate the number of rows to generate=0A=
				var printDate =3D this._daylightSavingAdjust(new Date(drawYear, =
drawMonth, 1 - leadDays));=0A=
				for (var dRow =3D 0; dRow < numRows; dRow++) { // create date picker =
rows=0A=
					calender +=3D '<tr>';=0A=
					var tbody =3D (!showWeek ? '' : '<td =
class=3D"ui-datepicker-week-col">' +=0A=
						this._get(inst, 'calculateWeek')(printDate) + '</td>');=0A=
					for (var dow =3D 0; dow < 7; dow++) { // create date picker days=0A=
						var daySettings =3D (beforeShowDay ?=0A=
							beforeShowDay.apply((inst.input ? inst.input[0] : null), =
[printDate]) : [true, '']);=0A=
						var otherMonth =3D (printDate.getMonth() !=3D drawMonth);=0A=
						var unselectable =3D (otherMonth && !selectOtherMonths) || =
!daySettings[0] ||=0A=
							(minDate && printDate < minDate) || (maxDate && printDate > =
maxDate);=0A=
						tbody +=3D '<td class=3D"' +=0A=
							((dow + firstDay + 6) % 7 >=3D 5 ? ' ui-datepicker-week-end' : =
'') + // highlight weekends=0A=
							(otherMonth ? ' ui-datepicker-other-month' : '') + // highlight =
days from other months=0A=
							((printDate.getTime() =3D=3D selectedDate.getTime() && drawMonth =
=3D=3D inst.selectedMonth && inst._keyEvent) || // user pressed key=0A=
							(defaultDate.getTime() =3D=3D printDate.getTime() && =
defaultDate.getTime() =3D=3D selectedDate.getTime()) ?=0A=
							// or defaultDate is current printedDate and defaultDate is =
selectedDate=0A=
							' ' + this._dayOverClass : '') + // highlight selected day=0A=
							(unselectable ? ' ' + this._unselectableClass + ' =
ui-state-disabled': '') +  // highlight unselectable days=0A=
							(otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] + // =
highlight custom dates=0A=
							(printDate.getTime() =3D=3D currentDate.getTime() ? ' ' + =
this._currentClass : '') + // highlight selected day=0A=
							(printDate.getTime() =3D=3D today.getTime() ? ' =
ui-datepicker-today' : '')) + '"' + // highlight today (if different)=0A=
							((!otherMonth || showOtherMonths) && daySettings[2] ? ' =
title=3D"' + daySettings[2] + '"' : '') + // cell title=0A=
							(unselectable ? '' : ' onclick=3D"DP_jQuery_' + dpuuid + =
'.datepicker._selectDay(\'#' +=0A=
							inst.id + '\',' + printDate.getMonth() + ',' + =
printDate.getFullYear() + ', this);return false;"') + '>' + // actions=0A=
							(otherMonth && !showOtherMonths ? '&#xa0;' : // display for other =
months=0A=
							(unselectable ? '<span class=3D"ui-state-default">' + =
printDate.getDate() + '</span>' : '<a class=3D"ui-state-default' +=0A=
							(printDate.getTime() =3D=3D today.getTime() ? ' =
ui-state-highlight' : '') +=0A=
							(printDate.getTime() =3D=3D currentDate.getTime() ? ' =
ui-state-active' : '') + // highlight selected day=0A=
							(otherMonth ? ' ui-priority-secondary' : '') + // distinguish =
dates from other months=0A=
							'" href=3D"#">' + printDate.getDate() + '</a>')) + '</td>'; // =
display selectable date=0A=
						printDate.setDate(printDate.getDate() + 1);=0A=
						printDate =3D this._daylightSavingAdjust(printDate);=0A=
					}=0A=
					calender +=3D tbody + '</tr>';=0A=
				}=0A=
				drawMonth++;=0A=
				if (drawMonth > 11) {=0A=
					drawMonth =3D 0;=0A=
					drawYear++;=0A=
				}=0A=
				calender +=3D '</tbody></table>' + (isMultiMonth ? '</div>' + =0A=
							((numMonths[0] > 0 && col =3D=3D numMonths[1]-1) ? '<div =
class=3D"ui-datepicker-row-break"></div>' : '') : '');=0A=
				group +=3D calender;=0A=
			}=0A=
			html +=3D group;=0A=
		}=0A=
		html +=3D buttonPanel + ($.browser.msie && =
parseInt($.browser.version,10) < 7 && !inst.inline ?=0A=
			'<iframe src=3D"javascript:false;" class=3D"ui-datepicker-cover" =
frameborder=3D"0"></iframe>' : '');=0A=
		inst._keyEvent =3D false;=0A=
		return html;=0A=
	},=0A=
=0A=
	/* Generate the month and year header. */=0A=
	_generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, =
maxDate,=0A=
			secondary, monthNames, monthNamesShort) {=0A=
		var changeMonth =3D this._get(inst, 'changeMonth');=0A=
		var changeYear =3D this._get(inst, 'changeYear');=0A=
		var showMonthAfterYear =3D this._get(inst, 'showMonthAfterYear');=0A=
		var html =3D '<div class=3D"ui-datepicker-title">';=0A=
		var monthHtml =3D '';=0A=
		// month selection=0A=
		if (secondary || !changeMonth)=0A=
			monthHtml +=3D '<span class=3D"ui-datepicker-month">' + =
monthNames[drawMonth] + '</span>';=0A=
		else {=0A=
			var inMinYear =3D (minDate && minDate.getFullYear() =3D=3D drawYear);=0A=
			var inMaxYear =3D (maxDate && maxDate.getFullYear() =3D=3D drawYear);=0A=
			monthHtml +=3D '<select class=3D"ui-datepicker-month" ' +=0A=
				'onchange=3D"DP_jQuery_' + dpuuid + =
'.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'M\');" ' +=0A=
				'onclick=3D"DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' =
+ inst.id + '\');"' +=0A=
			 	'>';=0A=
			for (var month =3D 0; month < 12; month++) {=0A=
				if ((!inMinYear || month >=3D minDate.getMonth()) &&=0A=
						(!inMaxYear || month <=3D maxDate.getMonth()))=0A=
					monthHtml +=3D '<option value=3D"' + month + '"' +=0A=
						(month =3D=3D drawMonth ? ' selected=3D"selected"' : '') +=0A=
						'>' + monthNamesShort[month] + '</option>';=0A=
			}=0A=
			monthHtml +=3D '</select>';=0A=
		}=0A=
		if (!showMonthAfterYear)=0A=
			html +=3D monthHtml + (secondary || !(changeMonth && changeYear) ? =
'&#xa0;' : '');=0A=
		// year selection=0A=
		if ( !inst.yearshtml ) {=0A=
			inst.yearshtml =3D '';=0A=
			if (secondary || !changeYear)=0A=
				html +=3D '<span class=3D"ui-datepicker-year">' + drawYear + =
'</span>';=0A=
			else {=0A=
				// determine range of years to display=0A=
				var years =3D this._get(inst, 'yearRange').split(':');=0A=
				var thisYear =3D new Date().getFullYear();=0A=
				var determineYear =3D function(value) {=0A=
					var year =3D (value.match(/c[+-].*/) ? drawYear + =
parseInt(value.substring(1), 10) :=0A=
						(value.match(/[+-].*/) ? thisYear + parseInt(value, 10) :=0A=
						parseInt(value, 10)));=0A=
					return (isNaN(year) ? thisYear : year);=0A=
				};=0A=
				var year =3D determineYear(years[0]);=0A=
				var endYear =3D Math.max(year, determineYear(years[1] || ''));=0A=
				year =3D (minDate ? Math.max(year, minDate.getFullYear()) : year);=0A=
				endYear =3D (maxDate ? Math.min(endYear, maxDate.getFullYear()) : =
endYear);=0A=
				inst.yearshtml +=3D '<select class=3D"ui-datepicker-year" ' +=0A=
					'onchange=3D"DP_jQuery_' + dpuuid + =
'.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +=0A=
					'onclick=3D"DP_jQuery_' + dpuuid + =
'.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +=0A=
					'>';=0A=
				for (; year <=3D endYear; year++) {=0A=
					inst.yearshtml +=3D '<option value=3D"' + year + '"' +=0A=
						(year =3D=3D drawYear ? ' selected=3D"selected"' : '') +=0A=
						'>' + year + '</option>';=0A=
				}=0A=
				inst.yearshtml +=3D '</select>';=0A=
				=0A=
				html +=3D inst.yearshtml;=0A=
				inst.yearshtml =3D null;=0A=
			}=0A=
		}=0A=
		html +=3D this._get(inst, 'yearSuffix');=0A=
		if (showMonthAfterYear)=0A=
			html +=3D (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '') =
+ monthHtml;=0A=
		html +=3D '</div>'; // Close datepicker_header=0A=
		return html;=0A=
	},=0A=
=0A=
	/* Adjust one of the date sub-fields. */=0A=
	_adjustInstDate: function(inst, offset, period) {=0A=
		var year =3D inst.drawYear + (period =3D=3D 'Y' ? offset : 0);=0A=
		var month =3D inst.drawMonth + (period =3D=3D 'M' ? offset : 0);=0A=
		var day =3D Math.min(inst.selectedDay, this._getDaysInMonth(year, =
month)) +=0A=
			(period =3D=3D 'D' ? offset : 0);=0A=
		var date =3D this._restrictMinMax(inst,=0A=
			this._daylightSavingAdjust(new Date(year, month, day)));=0A=
		inst.selectedDay =3D date.getDate();=0A=
		inst.drawMonth =3D inst.selectedMonth =3D date.getMonth();=0A=
		inst.drawYear =3D inst.selectedYear =3D date.getFullYear();=0A=
		if (period =3D=3D 'M' || period =3D=3D 'Y')=0A=
			this._notifyChange(inst);=0A=
	},=0A=
=0A=
	/* Ensure a date is within any min/max bounds. */=0A=
	_restrictMinMax: function(inst, date) {=0A=
		var minDate =3D this._getMinMaxDate(inst, 'min');=0A=
		var maxDate =3D this._getMinMaxDate(inst, 'max');=0A=
		var newDate =3D (minDate && date < minDate ? minDate : date);=0A=
		newDate =3D (maxDate && newDate > maxDate ? maxDate : newDate);=0A=
		return newDate;=0A=
	},=0A=
=0A=
	/* Notify change of month/year. */=0A=
	_notifyChange: function(inst) {=0A=
		var onChange =3D this._get(inst, 'onChangeMonthYear');=0A=
		if (onChange)=0A=
			onChange.apply((inst.input ? inst.input[0] : null),=0A=
				[inst.selectedYear, inst.selectedMonth + 1, inst]);=0A=
	},=0A=
=0A=
	/* Determine the number of months to show. */=0A=
	_getNumberOfMonths: function(inst) {=0A=
		var numMonths =3D this._get(inst, 'numberOfMonths');=0A=
		return (numMonths =3D=3D null ? [1, 1] : (typeof numMonths =3D=3D =
'number' ? [1, numMonths] : numMonths));=0A=
	},=0A=
=0A=
	/* Determine the current maximum date - ensure no time components are =
set. */=0A=
	_getMinMaxDate: function(inst, minMax) {=0A=
		return this._determineDate(inst, this._get(inst, minMax + 'Date'), =
null);=0A=
	},=0A=
=0A=
	/* Find the number of days in a given month. */=0A=
	_getDaysInMonth: function(year, month) {=0A=
		return 32 - this._daylightSavingAdjust(new Date(year, month, =
32)).getDate();=0A=
	},=0A=
=0A=
	/* Find the day of the week of the first of a month. */=0A=
	_getFirstDayOfMonth: function(year, month) {=0A=
		return new Date(year, month, 1).getDay();=0A=
	},=0A=
=0A=
	/* Determines if we should allow a "next/prev" month display change. */=0A=
	_canAdjustMonth: function(inst, offset, curYear, curMonth) {=0A=
		var numMonths =3D this._getNumberOfMonths(inst);=0A=
		var date =3D this._daylightSavingAdjust(new Date(curYear,=0A=
			curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));=0A=
		if (offset < 0)=0A=
			date.setDate(this._getDaysInMonth(date.getFullYear(), =
date.getMonth()));=0A=
		return this._isInRange(inst, date);=0A=
	},=0A=
=0A=
	/* Is the given date in the accepted range? */=0A=
	_isInRange: function(inst, date) {=0A=
		var minDate =3D this._getMinMaxDate(inst, 'min');=0A=
		var maxDate =3D this._getMinMaxDate(inst, 'max');=0A=
		return ((!minDate || date.getTime() >=3D minDate.getTime()) &&=0A=
			(!maxDate || date.getTime() <=3D maxDate.getTime()));=0A=
	},=0A=
=0A=
	/* Provide the configuration settings for formatting/parsing. */=0A=
	_getFormatConfig: function(inst) {=0A=
		var shortYearCutoff =3D this._get(inst, 'shortYearCutoff');=0A=
		shortYearCutoff =3D (typeof shortYearCutoff !=3D 'string' ? =
shortYearCutoff :=0A=
			new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));=0A=
		return {shortYearCutoff: shortYearCutoff,=0A=
			dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: =
this._get(inst, 'dayNames'),=0A=
			monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: =
this._get(inst, 'monthNames')};=0A=
	},=0A=
=0A=
	/* Format the given date for display. */=0A=
	_formatDate: function(inst, day, month, year) {=0A=
		if (!day) {=0A=
			inst.currentDay =3D inst.selectedDay;=0A=
			inst.currentMonth =3D inst.selectedMonth;=0A=
			inst.currentYear =3D inst.selectedYear;=0A=
		}=0A=
		var date =3D (day ? (typeof day =3D=3D 'object' ? day :=0A=
			this._daylightSavingAdjust(new Date(year, month, day))) :=0A=
			this._daylightSavingAdjust(new Date(inst.currentYear, =
inst.currentMonth, inst.currentDay)));=0A=
		return this.formatDate(this._get(inst, 'dateFormat'), date, =
this._getFormatConfig(inst));=0A=
	}=0A=
});=0A=
=0A=
/*=0A=
 * Bind hover events for datepicker elements.=0A=
 * Done via delegate so the binding only occurs once in the lifetime of =
the parent div.=0A=
 * Global instActive, set by _updateDatepicker allows the handlers to =
find their way back to the active picker.=0A=
 */ =0A=
function bindHover(dpDiv) {=0A=
	var selector =3D 'button, .ui-datepicker-prev, .ui-datepicker-next, =
.ui-datepicker-calendar td a';=0A=
	return dpDiv.delegate(selector, 'mouseout', function() {=0A=
			$(this).removeClass('ui-state-hover');=0A=
			if (this.className.indexOf('ui-datepicker-prev') !=3D -1) =
$(this).removeClass('ui-datepicker-prev-hover');=0A=
			if (this.className.indexOf('ui-datepicker-next') !=3D -1) =
$(this).removeClass('ui-datepicker-next-hover');=0A=
		})=0A=
		.delegate(selector, 'mouseover', function(){=0A=
			if (!$.datepicker._isDisabledDatepicker( instActive.inline ? =
dpDiv.parent()[0] : instActive.input[0])) {=0A=
				=
$(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-stat=
e-hover');=0A=
				$(this).addClass('ui-state-hover');=0A=
				if (this.className.indexOf('ui-datepicker-prev') !=3D -1) =
$(this).addClass('ui-datepicker-prev-hover');=0A=
				if (this.className.indexOf('ui-datepicker-next') !=3D -1) =
$(this).addClass('ui-datepicker-next-hover');=0A=
			}=0A=
		});=0A=
}=0A=
=0A=
/* jQuery extend now ignores nulls! */=0A=
function extendRemove(target, props) {=0A=
	$.extend(target, props);=0A=
	for (var name in props)=0A=
		if (props[name] =3D=3D null || props[name] =3D=3D undefined)=0A=
			target[name] =3D props[name];=0A=
	return target;=0A=
};=0A=
=0A=
/* Determine whether an object is an array. */=0A=
function isArray(a) {=0A=
	return (a && (($.browser.safari && typeof a =3D=3D 'object' && =
a.length) ||=0A=
		(a.constructor && a.constructor.toString().match(/\Array\(\)/))));=0A=
};=0A=
=0A=
/* Invoke the datepicker functionality.=0A=
   @param  options  string - a command, optionally followed by =
additional parameters or=0A=
                    Object - settings for attaching new datepicker =
functionality=0A=
   @return  jQuery object */=0A=
$.fn.datepicker =3D function(options){=0A=
	=0A=
	/* Verify an empty collection wasn't passed - Fixes #6976 */=0A=
	if ( !this.length ) {=0A=
		return this;=0A=
	}=0A=
	=0A=
	/* Initialise the date picker. */=0A=
	if (!$.datepicker.initialized) {=0A=
		$(document).mousedown($.datepicker._checkExternalClick).=0A=
			find('body').append($.datepicker.dpDiv);=0A=
		$.datepicker.initialized =3D true;=0A=
	}=0A=
=0A=
	var otherArgs =3D Array.prototype.slice.call(arguments, 1);=0A=
	if (typeof options =3D=3D 'string' && (options =3D=3D 'isDisabled' || =
options =3D=3D 'getDate' || options =3D=3D 'widget'))=0A=
		return $.datepicker['_' + options + 'Datepicker'].=0A=
			apply($.datepicker, [this[0]].concat(otherArgs));=0A=
	if (options =3D=3D 'option' && arguments.length =3D=3D 2 && typeof =
arguments[1] =3D=3D 'string')=0A=
		return $.datepicker['_' + options + 'Datepicker'].=0A=
			apply($.datepicker, [this[0]].concat(otherArgs));=0A=
	return this.each(function() {=0A=
		typeof options =3D=3D 'string' ?=0A=
			$.datepicker['_' + options + 'Datepicker'].=0A=
				apply($.datepicker, [this].concat(otherArgs)) :=0A=
			$.datepicker._attachDatepicker(this, options);=0A=
	});=0A=
};=0A=
=0A=
$.datepicker =3D new Datepicker(); // singleton instance=0A=
$.datepicker.initialized =3D false;=0A=
$.datepicker.uuid =3D new Date().getTime();=0A=
$.datepicker.version =3D "1.8.13";=0A=
=0A=
// Workaround for #4055=0A=
// Add another global to avoid noConflict issues with inline event =
handlers=0A=
window['DP_jQuery_' + dpuuid] =3D $;=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Progressbar 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Progressbar=0A=
 *=0A=
 * Depends:=0A=
 *   jquery.ui.core.js=0A=
 *   jquery.ui.widget.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.widget( "ui.progressbar", {=0A=
	options: {=0A=
		value: 0,=0A=
		max: 100=0A=
	},=0A=
=0A=
	min: 0,=0A=
=0A=
	_create: function() {=0A=
		this.element=0A=
			.addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" =
)=0A=
			.attr({=0A=
				role: "progressbar",=0A=
				"aria-valuemin": this.min,=0A=
				"aria-valuemax": this.options.max,=0A=
				"aria-valuenow": this._value()=0A=
			});=0A=
=0A=
		this.valueDiv =3D $( "<div class=3D'ui-progressbar-value =
ui-widget-header ui-corner-left'></div>" )=0A=
			.appendTo( this.element );=0A=
=0A=
		this.oldValue =3D this._value();=0A=
		this._refreshValue();=0A=
	},=0A=
=0A=
	destroy: function() {=0A=
		this.element=0A=
			.removeClass( "ui-progressbar ui-widget ui-widget-content =
ui-corner-all" )=0A=
			.removeAttr( "role" )=0A=
			.removeAttr( "aria-valuemin" )=0A=
			.removeAttr( "aria-valuemax" )=0A=
			.removeAttr( "aria-valuenow" );=0A=
=0A=
		this.valueDiv.remove();=0A=
=0A=
		$.Widget.prototype.destroy.apply( this, arguments );=0A=
	},=0A=
=0A=
	value: function( newValue ) {=0A=
		if ( newValue =3D=3D=3D undefined ) {=0A=
			return this._value();=0A=
		}=0A=
=0A=
		this._setOption( "value", newValue );=0A=
		return this;=0A=
	},=0A=
=0A=
	_setOption: function( key, value ) {=0A=
		if ( key =3D=3D=3D "value" ) {=0A=
			this.options.value =3D value;=0A=
			this._refreshValue();=0A=
			if ( this._value() =3D=3D=3D this.options.max ) {=0A=
				this._trigger( "complete" );=0A=
			}=0A=
		}=0A=
=0A=
		$.Widget.prototype._setOption.apply( this, arguments );=0A=
	},=0A=
=0A=
	_value: function() {=0A=
		var val =3D this.options.value;=0A=
		// normalize invalid value=0A=
		if ( typeof val !=3D=3D "number" ) {=0A=
			val =3D 0;=0A=
		}=0A=
		return Math.min( this.options.max, Math.max( this.min, val ) );=0A=
	},=0A=
=0A=
	_percentage: function() {=0A=
		return 100 * this._value() / this.options.max;=0A=
	},=0A=
=0A=
	_refreshValue: function() {=0A=
		var value =3D this.value();=0A=
		var percentage =3D this._percentage();=0A=
=0A=
		if ( this.oldValue !=3D=3D value ) {=0A=
			this.oldValue =3D value;=0A=
			this._trigger( "change" );=0A=
		}=0A=
=0A=
		this.valueDiv=0A=
			.toggle( value > this.min )=0A=
			.toggleClass( "ui-corner-right", value =3D=3D=3D this.options.max )=0A=
			.width( percentage.toFixed(0) + "%" );=0A=
		this.element.attr( "aria-valuenow", value );=0A=
	}=0A=
});=0A=
=0A=
$.extend( $.ui.progressbar, {=0A=
	version: "1.8.13"=0A=
});=0A=
=0A=
})( jQuery );=0A=
/*=0A=
 * jQuery UI Effects 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Effects/=0A=
 */=0A=
;jQuery.effects || (function($, undefined) {=0A=
=0A=
$.effects =3D {};=0A=
=0A=
=0A=
=0A=
/************************************************************************=
******/=0A=
/****************************** COLOR ANIMATIONS =
******************************/=0A=
/************************************************************************=
******/=0A=
=0A=
// override the animation for color styles=0A=
$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor',=0A=
	'borderRightColor', 'borderTopColor', 'borderColor', 'color', =
'outlineColor'],=0A=
function(i, attr) {=0A=
	$.fx.step[attr] =3D function(fx) {=0A=
		if (!fx.colorInit) {=0A=
			fx.start =3D getColor(fx.elem, attr);=0A=
			fx.end =3D getRGB(fx.end);=0A=
			fx.colorInit =3D true;=0A=
		}=0A=
=0A=
		fx.elem.style[attr] =3D 'rgb(' +=0A=
			Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + =
fx.start[0], 10), 255), 0) + ',' +=0A=
			Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + =
fx.start[1], 10), 255), 0) + ',' +=0A=
			Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + =
fx.start[2], 10), 255), 0) + ')';=0A=
	};=0A=
});=0A=
=0A=
// Color Conversion functions from highlightFade=0A=
// By Blair Mitchelmore=0A=
// http://jquery.offput.ca/highlightFade/=0A=
=0A=
// Parse strings looking for color tuples [255,255,255]=0A=
function getRGB(color) {=0A=
		var result;=0A=
=0A=
		// Check if we're already dealing with an array of colors=0A=
		if ( color && color.constructor =3D=3D Array && color.length =3D=3D 3 )=0A=
				return color;=0A=
=0A=
		// Look for rgb(num,num,num)=0A=
		if (result =3D =
/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(co=
lor))=0A=
				return [parseInt(result[1],10), parseInt(result[2],10), =
parseInt(result[3],10)];=0A=
=0A=
		// Look for rgb(num%,num%,num%)=0A=
		if (result =3D =
/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-=
9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))=0A=
				return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, =
parseFloat(result[3])*2.55];=0A=
=0A=
		// Look for #a0b1c2=0A=
		if (result =3D =
/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))=0A=
				return [parseInt(result[1],16), parseInt(result[2],16), =
parseInt(result[3],16)];=0A=
=0A=
		// Look for #fff=0A=
		if (result =3D /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))=0A=
				return [parseInt(result[1]+result[1],16), =
parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];=0A=
=0A=
		// Look for rgba(0, 0, 0, 0) =3D=3D transparent in Safari 3=0A=
		if (result =3D /rgba\(0, 0, 0, 0\)/.exec(color))=0A=
				return colors['transparent'];=0A=
=0A=
		// Otherwise, we're most likely dealing with a named color=0A=
		return colors[$.trim(color).toLowerCase()];=0A=
}=0A=
=0A=
function getColor(elem, attr) {=0A=
		var color;=0A=
=0A=
		do {=0A=
				color =3D $.curCSS(elem, attr);=0A=
=0A=
				// Keep going until we find an element that has color, or we hit the =
body=0A=
				if ( color !=3D '' && color !=3D 'transparent' || $.nodeName(elem, =
"body") )=0A=
						break;=0A=
=0A=
				attr =3D "backgroundColor";=0A=
		} while ( elem =3D elem.parentNode );=0A=
=0A=
		return getRGB(color);=0A=
};=0A=
=0A=
// Some named colors to work with=0A=
// From Interface by Stefan Petre=0A=
// http://interface.eyecon.ro/=0A=
=0A=
var colors =3D {=0A=
	aqua:[0,255,255],=0A=
	azure:[240,255,255],=0A=
	beige:[245,245,220],=0A=
	black:[0,0,0],=0A=
	blue:[0,0,255],=0A=
	brown:[165,42,42],=0A=
	cyan:[0,255,255],=0A=
	darkblue:[0,0,139],=0A=
	darkcyan:[0,139,139],=0A=
	darkgrey:[169,169,169],=0A=
	darkgreen:[0,100,0],=0A=
	darkkhaki:[189,183,107],=0A=
	darkmagenta:[139,0,139],=0A=
	darkolivegreen:[85,107,47],=0A=
	darkorange:[255,140,0],=0A=
	darkorchid:[153,50,204],=0A=
	darkred:[139,0,0],=0A=
	darksalmon:[233,150,122],=0A=
	darkviolet:[148,0,211],=0A=
	fuchsia:[255,0,255],=0A=
	gold:[255,215,0],=0A=
	green:[0,128,0],=0A=
	indigo:[75,0,130],=0A=
	khaki:[240,230,140],=0A=
	lightblue:[173,216,230],=0A=
	lightcyan:[224,255,255],=0A=
	lightgreen:[144,238,144],=0A=
	lightgrey:[211,211,211],=0A=
	lightpink:[255,182,193],=0A=
	lightyellow:[255,255,224],=0A=
	lime:[0,255,0],=0A=
	magenta:[255,0,255],=0A=
	maroon:[128,0,0],=0A=
	navy:[0,0,128],=0A=
	olive:[128,128,0],=0A=
	orange:[255,165,0],=0A=
	pink:[255,192,203],=0A=
	purple:[128,0,128],=0A=
	violet:[128,0,128],=0A=
	red:[255,0,0],=0A=
	silver:[192,192,192],=0A=
	white:[255,255,255],=0A=
	yellow:[255,255,0],=0A=
	transparent: [255,255,255]=0A=
};=0A=
=0A=
=0A=
=0A=
/************************************************************************=
******/=0A=
/****************************** CLASS ANIMATIONS =
******************************/=0A=
/************************************************************************=
******/=0A=
=0A=
var classAnimationActions =3D ['add', 'remove', 'toggle'],=0A=
	shorthandStyles =3D {=0A=
		border: 1,=0A=
		borderBottom: 1,=0A=
		borderColor: 1,=0A=
		borderLeft: 1,=0A=
		borderRight: 1,=0A=
		borderTop: 1,=0A=
		borderWidth: 1,=0A=
		margin: 1,=0A=
		padding: 1=0A=
	};=0A=
=0A=
function getElementStyles() {=0A=
	var style =3D document.defaultView=0A=
			? document.defaultView.getComputedStyle(this, null)=0A=
			: this.currentStyle,=0A=
		newStyle =3D {},=0A=
		key,=0A=
		camelCase;=0A=
=0A=
	// webkit enumerates style porperties=0A=
	if (style && style.length && style[0] && style[style[0]]) {=0A=
		var len =3D style.length;=0A=
		while (len--) {=0A=
			key =3D style[len];=0A=
			if (typeof style[key] =3D=3D 'string') {=0A=
				camelCase =3D key.replace(/\-(\w)/g, function(all, letter){=0A=
					return letter.toUpperCase();=0A=
				});=0A=
				newStyle[camelCase] =3D style[key];=0A=
			}=0A=
		}=0A=
	} else {=0A=
		for (key in style) {=0A=
			if (typeof style[key] =3D=3D=3D 'string') {=0A=
				newStyle[key] =3D style[key];=0A=
			}=0A=
		}=0A=
	}=0A=
	=0A=
	return newStyle;=0A=
}=0A=
=0A=
function filterStyles(styles) {=0A=
	var name, value;=0A=
	for (name in styles) {=0A=
		value =3D styles[name];=0A=
		if (=0A=
			// ignore null and undefined values=0A=
			value =3D=3D null ||=0A=
			// ignore functions (when does this occur?)=0A=
			$.isFunction(value) ||=0A=
			// shorthand styles that need to be expanded=0A=
			name in shorthandStyles ||=0A=
			// ignore scrollbars (break in IE)=0A=
			(/scrollbar/).test(name) ||=0A=
=0A=
			// only colors or values that can be converted to numbers=0A=
			(!(/color/i).test(name) && isNaN(parseFloat(value)))=0A=
		) {=0A=
			delete styles[name];=0A=
		}=0A=
	}=0A=
	=0A=
	return styles;=0A=
}=0A=
=0A=
function styleDifference(oldStyle, newStyle) {=0A=
	var diff =3D { _: 0 }, // http://dev.jquery.com/ticket/5459=0A=
		name;=0A=
=0A=
	for (name in newStyle) {=0A=
		if (oldStyle[name] !=3D newStyle[name]) {=0A=
			diff[name] =3D newStyle[name];=0A=
		}=0A=
	}=0A=
=0A=
	return diff;=0A=
}=0A=
=0A=
$.effects.animateClass =3D function(value, duration, easing, callback) {=0A=
	if ($.isFunction(easing)) {=0A=
		callback =3D easing;=0A=
		easing =3D null;=0A=
	}=0A=
=0A=
	return this.queue(function() {=0A=
		var that =3D $(this),=0A=
			originalStyleAttr =3D that.attr('style') || ' ',=0A=
			originalStyle =3D filterStyles(getElementStyles.call(this)),=0A=
			newStyle,=0A=
			className =3D that.attr('class');=0A=
=0A=
		$.each(classAnimationActions, function(i, action) {=0A=
			if (value[action]) {=0A=
				that[action + 'Class'](value[action]);=0A=
			}=0A=
		});=0A=
		newStyle =3D filterStyles(getElementStyles.call(this));=0A=
		that.attr('class', className);=0A=
=0A=
		that.animate(styleDifference(originalStyle, newStyle), {=0A=
			queue: false,=0A=
			duration: duration,=0A=
			easding: easing,=0A=
			complete: function() {=0A=
				$.each(classAnimationActions, function(i, action) {=0A=
					if (value[action]) { that[action + 'Class'](value[action]); }=0A=
				});=0A=
				// work around bug in IE by clearing the cssText before setting it=0A=
				if (typeof that.attr('style') =3D=3D 'object') {=0A=
					that.attr('style').cssText =3D '';=0A=
					that.attr('style').cssText =3D originalStyleAttr;=0A=
				} else {=0A=
					that.attr('style', originalStyleAttr);=0A=
				}=0A=
				if (callback) { callback.apply(this, arguments); }=0A=
				$.dequeue( this );=0A=
			}=0A=
		});=0A=
	});=0A=
};=0A=
=0A=
$.fn.extend({=0A=
	_addClass: $.fn.addClass,=0A=
	addClass: function(classNames, speed, easing, callback) {=0A=
		return speed ? $.effects.animateClass.apply(this, [{ add: classNames =
},speed,easing,callback]) : this._addClass(classNames);=0A=
	},=0A=
=0A=
	_removeClass: $.fn.removeClass,=0A=
	removeClass: function(classNames,speed,easing,callback) {=0A=
		return speed ? $.effects.animateClass.apply(this, [{ remove: =
classNames },speed,easing,callback]) : this._removeClass(classNames);=0A=
	},=0A=
=0A=
	_toggleClass: $.fn.toggleClass,=0A=
	toggleClass: function(classNames, force, speed, easing, callback) {=0A=
		if ( typeof force =3D=3D "boolean" || force =3D=3D=3D undefined ) {=0A=
			if ( !speed ) {=0A=
				// without speed parameter;=0A=
				return this._toggleClass(classNames, force);=0A=
			} else {=0A=
				return $.effects.animateClass.apply(this, =
[(force?{add:classNames}:{remove:classNames}),speed,easing,callback]);=0A=
			}=0A=
		} else {=0A=
			// without switch parameter;=0A=
			return $.effects.animateClass.apply(this, [{ toggle: classNames =
},force,speed,easing]);=0A=
		}=0A=
	},=0A=
=0A=
	switchClass: function(remove,add,speed,easing,callback) {=0A=
		return $.effects.animateClass.apply(this, [{ add: add, remove: remove =
},speed,easing,callback]);=0A=
	}=0A=
});=0A=
=0A=
=0A=
=0A=
/************************************************************************=
******/=0A=
/*********************************** EFFECTS =
**********************************/=0A=
/************************************************************************=
******/=0A=
=0A=
$.extend($.effects, {=0A=
	version: "1.8.13",=0A=
=0A=
	// Saves a set of properties in a data storage=0A=
	save: function(element, set) {=0A=
		for(var i=3D0; i < set.length; i++) {=0A=
			if(set[i] !=3D=3D null) element.data("ec.storage."+set[i], =
element[0].style[set[i]]);=0A=
		}=0A=
	},=0A=
=0A=
	// Restores a set of previously saved properties from a data storage=0A=
	restore: function(element, set) {=0A=
		for(var i=3D0; i < set.length; i++) {=0A=
			if(set[i] !=3D=3D null) element.css(set[i], =
element.data("ec.storage."+set[i]));=0A=
		}=0A=
	},=0A=
=0A=
	setMode: function(el, mode) {=0A=
		if (mode =3D=3D 'toggle') mode =3D el.is(':hidden') ? 'show' : 'hide'; =
// Set for toggle=0A=
		return mode;=0A=
	},=0A=
=0A=
	getBaseline: function(origin, original) { // Translates a [top,left] =
array into a baseline value=0A=
		// this should be a little more flexible in the future to handle a =
string & hash=0A=
		var y, x;=0A=
		switch (origin[0]) {=0A=
			case 'top': y =3D 0; break;=0A=
			case 'middle': y =3D 0.5; break;=0A=
			case 'bottom': y =3D 1; break;=0A=
			default: y =3D origin[0] / original.height;=0A=
		};=0A=
		switch (origin[1]) {=0A=
			case 'left': x =3D 0; break;=0A=
			case 'center': x =3D 0.5; break;=0A=
			case 'right': x =3D 1; break;=0A=
			default: x =3D origin[1] / original.width;=0A=
		};=0A=
		return {x: x, y: y};=0A=
	},=0A=
=0A=
	// Wraps the element around a wrapper that copies position properties=0A=
	createWrapper: function(element) {=0A=
=0A=
		// if the element is already wrapped, return it=0A=
		if (element.parent().is('.ui-effects-wrapper')) {=0A=
			return element.parent();=0A=
		}=0A=
=0A=
		// wrap the element=0A=
		var props =3D {=0A=
				width: element.outerWidth(true),=0A=
				height: element.outerHeight(true),=0A=
				'float': element.css('float')=0A=
			},=0A=
			wrapper =3D $('<div></div>')=0A=
				.addClass('ui-effects-wrapper')=0A=
				.css({=0A=
					fontSize: '100%',=0A=
					background: 'transparent',=0A=
					border: 'none',=0A=
					margin: 0,=0A=
					padding: 0=0A=
				});=0A=
=0A=
		element.wrap(wrapper);=0A=
		wrapper =3D element.parent(); //Hotfix for jQuery 1.4 since some =
change in wrap() seems to actually loose the reference to the wrapped =
element=0A=
=0A=
		// transfer positioning properties to the wrapper=0A=
		if (element.css('position') =3D=3D 'static') {=0A=
			wrapper.css({ position: 'relative' });=0A=
			element.css({ position: 'relative' });=0A=
		} else {=0A=
			$.extend(props, {=0A=
				position: element.css('position'),=0A=
				zIndex: element.css('z-index')=0A=
			});=0A=
			$.each(['top', 'left', 'bottom', 'right'], function(i, pos) {=0A=
				props[pos] =3D element.css(pos);=0A=
				if (isNaN(parseInt(props[pos], 10))) {=0A=
					props[pos] =3D 'auto';=0A=
				}=0A=
			});=0A=
			element.css({position: 'relative', top: 0, left: 0, right: 'auto', =
bottom: 'auto' });=0A=
		}=0A=
=0A=
		return wrapper.css(props).show();=0A=
	},=0A=
=0A=
	removeWrapper: function(element) {=0A=
		if (element.parent().is('.ui-effects-wrapper'))=0A=
			return element.parent().replaceWith(element);=0A=
		return element;=0A=
	},=0A=
=0A=
	setTransition: function(element, list, factor, value) {=0A=
		value =3D value || {};=0A=
		$.each(list, function(i, x){=0A=
			unit =3D element.cssUnit(x);=0A=
			if (unit[0] > 0) value[x] =3D unit[0] * factor + unit[1];=0A=
		});=0A=
		return value;=0A=
	}=0A=
});=0A=
=0A=
=0A=
function _normalizeArguments(effect, options, speed, callback) {=0A=
	// shift params for method overloading=0A=
	if (typeof effect =3D=3D 'object') {=0A=
		callback =3D options;=0A=
		speed =3D null;=0A=
		options =3D effect;=0A=
		effect =3D options.effect;=0A=
	}=0A=
	if ($.isFunction(options)) {=0A=
		callback =3D options;=0A=
		speed =3D null;=0A=
		options =3D {};=0A=
	}=0A=
        if (typeof options =3D=3D 'number' || $.fx.speeds[options]) {=0A=
		callback =3D speed;=0A=
		speed =3D options;=0A=
		options =3D {};=0A=
	}=0A=
	if ($.isFunction(speed)) {=0A=
		callback =3D speed;=0A=
		speed =3D null;=0A=
	}=0A=
=0A=
	options =3D options || {};=0A=
=0A=
	speed =3D speed || options.duration;=0A=
	speed =3D $.fx.off ? 0 : typeof speed =3D=3D 'number'=0A=
		? speed : speed in $.fx.speeds ? $.fx.speeds[speed] : =
$.fx.speeds._default;=0A=
=0A=
	callback =3D callback || options.complete;=0A=
=0A=
	return [effect, options, speed, callback];=0A=
}=0A=
=0A=
function standardSpeed( speed ) {=0A=
	// valid standard speeds=0A=
	if ( !speed || typeof speed =3D=3D=3D "number" || $.fx.speeds[ speed ] =
) {=0A=
		return true;=0A=
	}=0A=
	=0A=
	// invalid strings - treat as "normal" speed=0A=
	if ( typeof speed =3D=3D=3D "string" && !$.effects[ speed ] ) {=0A=
		return true;=0A=
	}=0A=
	=0A=
	return false;=0A=
}=0A=
=0A=
$.fn.extend({=0A=
	effect: function(effect, options, speed, callback) {=0A=
		var args =3D _normalizeArguments.apply(this, arguments),=0A=
			// TODO: make effects take actual parameters instead of a hash=0A=
			args2 =3D {=0A=
				options: args[1],=0A=
				duration: args[2],=0A=
				callback: args[3]=0A=
			},=0A=
			mode =3D args2.options.mode,=0A=
			effectMethod =3D $.effects[effect];=0A=
		=0A=
		if ( $.fx.off || !effectMethod ) {=0A=
			// delegate to the original method (e.g., .show()) if possible=0A=
			if ( mode ) {=0A=
				return this[ mode ]( args2.duration, args2.callback );=0A=
			} else {=0A=
				return this.each(function() {=0A=
					if ( args2.callback ) {=0A=
						args2.callback.call( this );=0A=
					}=0A=
				});=0A=
			}=0A=
		}=0A=
		=0A=
		return effectMethod.call(this, args2);=0A=
	},=0A=
=0A=
	_show: $.fn.show,=0A=
	show: function(speed) {=0A=
		if ( standardSpeed( speed ) ) {=0A=
			return this._show.apply(this, arguments);=0A=
		} else {=0A=
			var args =3D _normalizeArguments.apply(this, arguments);=0A=
			args[1].mode =3D 'show';=0A=
			return this.effect.apply(this, args);=0A=
		}=0A=
	},=0A=
=0A=
	_hide: $.fn.hide,=0A=
	hide: function(speed) {=0A=
		if ( standardSpeed( speed ) ) {=0A=
			return this._hide.apply(this, arguments);=0A=
		} else {=0A=
			var args =3D _normalizeArguments.apply(this, arguments);=0A=
			args[1].mode =3D 'hide';=0A=
			return this.effect.apply(this, args);=0A=
		}=0A=
	},=0A=
=0A=
	// jQuery core overloads toggle and creates _toggle=0A=
	__toggle: $.fn.toggle,=0A=
	toggle: function(speed) {=0A=
		if ( standardSpeed( speed ) || typeof speed =3D=3D=3D "boolean" || =
$.isFunction( speed ) ) {=0A=
			return this.__toggle.apply(this, arguments);=0A=
		} else {=0A=
			var args =3D _normalizeArguments.apply(this, arguments);=0A=
			args[1].mode =3D 'toggle';=0A=
			return this.effect.apply(this, args);=0A=
		}=0A=
	},=0A=
=0A=
	// helper functions=0A=
	cssUnit: function(key) {=0A=
		var style =3D this.css(key), val =3D [];=0A=
		$.each( ['em','px','%','pt'], function(i, unit){=0A=
			if(style.indexOf(unit) > 0)=0A=
				val =3D [parseFloat(style), unit];=0A=
		});=0A=
		return val;=0A=
	}=0A=
});=0A=
=0A=
=0A=
=0A=
/************************************************************************=
******/=0A=
/*********************************** EASING =
***********************************/=0A=
/************************************************************************=
******/=0A=
=0A=
/*=0A=
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/=0A=
 *=0A=
 * Uses the built in easing capabilities added In jQuery 1.1=0A=
 * to offer multiple easing options=0A=
 *=0A=
 * TERMS OF USE - jQuery Easing=0A=
 *=0A=
 * Open source under the BSD License.=0A=
 *=0A=
 * Copyright 2008 George McGinley Smith=0A=
 * All rights reserved.=0A=
 *=0A=
 * Redistribution and use in source and binary forms, with or without =
modification,=0A=
 * are permitted provided that the following conditions are met:=0A=
 *=0A=
 * Redistributions of source code must retain the above copyright =
notice, this list of=0A=
 * conditions and the following disclaimer.=0A=
 * Redistributions in binary form must reproduce the above copyright =
notice, this list=0A=
 * of conditions and the following disclaimer in the documentation =
and/or other materials=0A=
 * provided with the distribution.=0A=
 *=0A=
 * Neither the name of the author nor the names of contributors may be =
used to endorse=0A=
 * or promote products derived from this software without specific prior =
written permission.=0A=
 *=0A=
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS =
"AS IS" AND ANY=0A=
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE =
IMPLIED WARRANTIES OF=0A=
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. =
IN NO EVENT SHALL THE=0A=
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, =
INCIDENTAL, SPECIAL,=0A=
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, =
PROCUREMENT OF SUBSTITUTE=0A=
 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS =
INTERRUPTION) HOWEVER CAUSED=0A=
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT =
LIABILITY, OR TORT (INCLUDING=0A=
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS =
SOFTWARE, EVEN IF ADVISED=0A=
 * OF THE POSSIBILITY OF SUCH DAMAGE.=0A=
 *=0A=
*/=0A=
=0A=
// t: current time, b: begInnIng value, c: change In value, d: duration=0A=
$.easing.jswing =3D $.easing.swing;=0A=
=0A=
$.extend($.easing,=0A=
{=0A=
	def: 'easeOutQuad',=0A=
	swing: function (x, t, b, c, d) {=0A=
		//alert($.easing.default);=0A=
		return $.easing[$.easing.def](x, t, b, c, d);=0A=
	},=0A=
	easeInQuad: function (x, t, b, c, d) {=0A=
		return c*(t/=3Dd)*t + b;=0A=
	},=0A=
	easeOutQuad: function (x, t, b, c, d) {=0A=
		return -c *(t/=3Dd)*(t-2) + b;=0A=
	},=0A=
	easeInOutQuad: function (x, t, b, c, d) {=0A=
		if ((t/=3Dd/2) < 1) return c/2*t*t + b;=0A=
		return -c/2 * ((--t)*(t-2) - 1) + b;=0A=
	},=0A=
	easeInCubic: function (x, t, b, c, d) {=0A=
		return c*(t/=3Dd)*t*t + b;=0A=
	},=0A=
	easeOutCubic: function (x, t, b, c, d) {=0A=
		return c*((t=3Dt/d-1)*t*t + 1) + b;=0A=
	},=0A=
	easeInOutCubic: function (x, t, b, c, d) {=0A=
		if ((t/=3Dd/2) < 1) return c/2*t*t*t + b;=0A=
		return c/2*((t-=3D2)*t*t + 2) + b;=0A=
	},=0A=
	easeInQuart: function (x, t, b, c, d) {=0A=
		return c*(t/=3Dd)*t*t*t + b;=0A=
	},=0A=
	easeOutQuart: function (x, t, b, c, d) {=0A=
		return -c * ((t=3Dt/d-1)*t*t*t - 1) + b;=0A=
	},=0A=
	easeInOutQuart: function (x, t, b, c, d) {=0A=
		if ((t/=3Dd/2) < 1) return c/2*t*t*t*t + b;=0A=
		return -c/2 * ((t-=3D2)*t*t*t - 2) + b;=0A=
	},=0A=
	easeInQuint: function (x, t, b, c, d) {=0A=
		return c*(t/=3Dd)*t*t*t*t + b;=0A=
	},=0A=
	easeOutQuint: function (x, t, b, c, d) {=0A=
		return c*((t=3Dt/d-1)*t*t*t*t + 1) + b;=0A=
	},=0A=
	easeInOutQuint: function (x, t, b, c, d) {=0A=
		if ((t/=3Dd/2) < 1) return c/2*t*t*t*t*t + b;=0A=
		return c/2*((t-=3D2)*t*t*t*t + 2) + b;=0A=
	},=0A=
	easeInSine: function (x, t, b, c, d) {=0A=
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;=0A=
	},=0A=
	easeOutSine: function (x, t, b, c, d) {=0A=
		return c * Math.sin(t/d * (Math.PI/2)) + b;=0A=
	},=0A=
	easeInOutSine: function (x, t, b, c, d) {=0A=
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;=0A=
	},=0A=
	easeInExpo: function (x, t, b, c, d) {=0A=
		return (t=3D=3D0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;=0A=
	},=0A=
	easeOutExpo: function (x, t, b, c, d) {=0A=
		return (t=3D=3Dd) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;=0A=
	},=0A=
	easeInOutExpo: function (x, t, b, c, d) {=0A=
		if (t=3D=3D0) return b;=0A=
		if (t=3D=3Dd) return b+c;=0A=
		if ((t/=3Dd/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;=0A=
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;=0A=
	},=0A=
	easeInCirc: function (x, t, b, c, d) {=0A=
		return -c * (Math.sqrt(1 - (t/=3Dd)*t) - 1) + b;=0A=
	},=0A=
	easeOutCirc: function (x, t, b, c, d) {=0A=
		return c * Math.sqrt(1 - (t=3Dt/d-1)*t) + b;=0A=
	},=0A=
	easeInOutCirc: function (x, t, b, c, d) {=0A=
		if ((t/=3Dd/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;=0A=
		return c/2 * (Math.sqrt(1 - (t-=3D2)*t) + 1) + b;=0A=
	},=0A=
	easeInElastic: function (x, t, b, c, d) {=0A=
		var s=3D1.70158;var p=3D0;var a=3Dc;=0A=
		if (t=3D=3D0) return b;  if ((t/=3Dd)=3D=3D1) return b+c;  if (!p) =
p=3Dd*.3;=0A=
		if (a < Math.abs(c)) { a=3Dc; var s=3Dp/4; }=0A=
		else var s =3D p/(2*Math.PI) * Math.asin (c/a);=0A=
		return -(a*Math.pow(2,10*(t-=3D1)) * Math.sin( (t*d-s)*(2*Math.PI)/p =
)) + b;=0A=
	},=0A=
	easeOutElastic: function (x, t, b, c, d) {=0A=
		var s=3D1.70158;var p=3D0;var a=3Dc;=0A=
		if (t=3D=3D0) return b;  if ((t/=3Dd)=3D=3D1) return b+c;  if (!p) =
p=3Dd*.3;=0A=
		if (a < Math.abs(c)) { a=3Dc; var s=3Dp/4; }=0A=
		else var s =3D p/(2*Math.PI) * Math.asin (c/a);=0A=
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;=0A=
	},=0A=
	easeInOutElastic: function (x, t, b, c, d) {=0A=
		var s=3D1.70158;var p=3D0;var a=3Dc;=0A=
		if (t=3D=3D0) return b;  if ((t/=3Dd/2)=3D=3D2) return b+c;  if (!p) =
p=3Dd*(.3*1.5);=0A=
		if (a < Math.abs(c)) { a=3Dc; var s=3Dp/4; }=0A=
		else var s =3D p/(2*Math.PI) * Math.asin (c/a);=0A=
		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=3D1)) * Math.sin( =
(t*d-s)*(2*Math.PI)/p )) + b;=0A=
		return a*Math.pow(2,-10*(t-=3D1)) * Math.sin( (t*d-s)*(2*Math.PI)/p =
)*.5 + c + b;=0A=
	},=0A=
	easeInBack: function (x, t, b, c, d, s) {=0A=
		if (s =3D=3D undefined) s =3D 1.70158;=0A=
		return c*(t/=3Dd)*t*((s+1)*t - s) + b;=0A=
	},=0A=
	easeOutBack: function (x, t, b, c, d, s) {=0A=
		if (s =3D=3D undefined) s =3D 1.70158;=0A=
		return c*((t=3Dt/d-1)*t*((s+1)*t + s) + 1) + b;=0A=
	},=0A=
	easeInOutBack: function (x, t, b, c, d, s) {=0A=
		if (s =3D=3D undefined) s =3D 1.70158;=0A=
		if ((t/=3Dd/2) < 1) return c/2*(t*t*(((s*=3D(1.525))+1)*t - s)) + b;=0A=
		return c/2*((t-=3D2)*t*(((s*=3D(1.525))+1)*t + s) + 2) + b;=0A=
	},=0A=
	easeInBounce: function (x, t, b, c, d) {=0A=
		return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b;=0A=
	},=0A=
	easeOutBounce: function (x, t, b, c, d) {=0A=
		if ((t/=3Dd) < (1/2.75)) {=0A=
			return c*(7.5625*t*t) + b;=0A=
		} else if (t < (2/2.75)) {=0A=
			return c*(7.5625*(t-=3D(1.5/2.75))*t + .75) + b;=0A=
		} else if (t < (2.5/2.75)) {=0A=
			return c*(7.5625*(t-=3D(2.25/2.75))*t + .9375) + b;=0A=
		} else {=0A=
			return c*(7.5625*(t-=3D(2.625/2.75))*t + .984375) + b;=0A=
		}=0A=
	},=0A=
	easeInOutBounce: function (x, t, b, c, d) {=0A=
		if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;=0A=
		return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;=0A=
	}=0A=
});=0A=
=0A=
/*=0A=
 *=0A=
 * TERMS OF USE - EASING EQUATIONS=0A=
 *=0A=
 * Open source under the BSD License.=0A=
 *=0A=
 * Copyright 2001 Robert Penner=0A=
 * All rights reserved.=0A=
 *=0A=
 * Redistribution and use in source and binary forms, with or without =
modification,=0A=
 * are permitted provided that the following conditions are met:=0A=
 *=0A=
 * Redistributions of source code must retain the above copyright =
notice, this list of=0A=
 * conditions and the following disclaimer.=0A=
 * Redistributions in binary form must reproduce the above copyright =
notice, this list=0A=
 * of conditions and the following disclaimer in the documentation =
and/or other materials=0A=
 * provided with the distribution.=0A=
 *=0A=
 * Neither the name of the author nor the names of contributors may be =
used to endorse=0A=
 * or promote products derived from this software without specific prior =
written permission.=0A=
 *=0A=
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS =
"AS IS" AND ANY=0A=
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE =
IMPLIED WARRANTIES OF=0A=
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. =
IN NO EVENT SHALL THE=0A=
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, =
INCIDENTAL, SPECIAL,=0A=
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, =
PROCUREMENT OF SUBSTITUTE=0A=
 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS =
INTERRUPTION) HOWEVER CAUSED=0A=
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT =
LIABILITY, OR TORT (INCLUDING=0A=
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS =
SOFTWARE, EVEN IF ADVISED=0A=
 * OF THE POSSIBILITY OF SUCH DAMAGE.=0A=
 *=0A=
 */=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Effects Blind 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Effects/Blind=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.effects.core.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.effects.blind =3D function(o) {=0A=
=0A=
	return this.queue(function() {=0A=
=0A=
		// Create element=0A=
		var el =3D $(this), props =3D =
['position','top','bottom','left','right'];=0A=
=0A=
		// Set options=0A=
		var mode =3D $.effects.setMode(el, o.options.mode || 'hide'); // Set =
Mode=0A=
		var direction =3D o.options.direction || 'vertical'; // Default =
direction=0A=
=0A=
		// Adjust=0A=
		$.effects.save(el, props); el.show(); // Save & Show=0A=
		var wrapper =3D $.effects.createWrapper(el).css({overflow:'hidden'}); =
// Create Wrapper=0A=
		var ref =3D (direction =3D=3D 'vertical') ? 'height' : 'width';=0A=
		var distance =3D (direction =3D=3D 'vertical') ? wrapper.height() : =
wrapper.width();=0A=
		if(mode =3D=3D 'show') wrapper.css(ref, 0); // Shift=0A=
=0A=
		// Animation=0A=
		var animation =3D {};=0A=
		animation[ref] =3D mode =3D=3D 'show' ? distance : 0;=0A=
=0A=
		// Animate=0A=
		wrapper.animate(animation, o.duration, o.options.easing, function() {=0A=
			if(mode =3D=3D 'hide') el.hide(); // Hide=0A=
			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore=0A=
			if(o.callback) o.callback.apply(el[0], arguments); // Callback=0A=
			el.dequeue();=0A=
		});=0A=
=0A=
	});=0A=
=0A=
};=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Effects Bounce 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Effects/Bounce=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.effects.core.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.effects.bounce =3D function(o) {=0A=
=0A=
	return this.queue(function() {=0A=
=0A=
		// Create element=0A=
		var el =3D $(this), props =3D =
['position','top','bottom','left','right'];=0A=
=0A=
		// Set options=0A=
		var mode =3D $.effects.setMode(el, o.options.mode || 'effect'); // Set =
Mode=0A=
		var direction =3D o.options.direction || 'up'; // Default direction=0A=
		var distance =3D o.options.distance || 20; // Default distance=0A=
		var times =3D o.options.times || 5; // Default # of times=0A=
		var speed =3D o.duration || 250; // Default speed per bounce=0A=
		if (/show|hide/.test(mode)) props.push('opacity'); // Avoid touching =
opacity to prevent clearType and PNG issues in IE=0A=
=0A=
		// Adjust=0A=
		$.effects.save(el, props); el.show(); // Save & Show=0A=
		$.effects.createWrapper(el); // Create Wrapper=0A=
		var ref =3D (direction =3D=3D 'up' || direction =3D=3D 'down') ? 'top' =
: 'left';=0A=
		var motion =3D (direction =3D=3D 'up' || direction =3D=3D 'left') ? =
'pos' : 'neg';=0A=
		var distance =3D o.options.distance || (ref =3D=3D 'top' ? =
el.outerHeight({margin:true}) / 3 : el.outerWidth({margin:true}) / 3);=0A=
		if (mode =3D=3D 'show') el.css('opacity', 0).css(ref, motion =3D=3D =
'pos' ? -distance : distance); // Shift=0A=
		if (mode =3D=3D 'hide') distance =3D distance / (times * 2);=0A=
		if (mode !=3D 'hide') times--;=0A=
=0A=
		// Animate=0A=
		if (mode =3D=3D 'show') { // Show Bounce=0A=
			var animation =3D {opacity: 1};=0A=
			animation[ref] =3D (motion =3D=3D 'pos' ? '+=3D' : '-=3D') + distance;=0A=
			el.animate(animation, speed / 2, o.options.easing);=0A=
			distance =3D distance / 2;=0A=
			times--;=0A=
		};=0A=
		for (var i =3D 0; i < times; i++) { // Bounces=0A=
			var animation1 =3D {}, animation2 =3D {};=0A=
			animation1[ref] =3D (motion =3D=3D 'pos' ? '-=3D' : '+=3D') + =
distance;=0A=
			animation2[ref] =3D (motion =3D=3D 'pos' ? '+=3D' : '-=3D') + =
distance;=0A=
			el.animate(animation1, speed / 2, =
o.options.easing).animate(animation2, speed / 2, o.options.easing);=0A=
			distance =3D (mode =3D=3D 'hide') ? distance * 2 : distance / 2;=0A=
		};=0A=
		if (mode =3D=3D 'hide') { // Last Bounce=0A=
			var animation =3D {opacity: 0};=0A=
			animation[ref] =3D (motion =3D=3D 'pos' ? '-=3D' : '+=3D')  + =
distance;=0A=
			el.animate(animation, speed / 2, o.options.easing, function(){=0A=
				el.hide(); // Hide=0A=
				$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore=0A=
				if(o.callback) o.callback.apply(this, arguments); // Callback=0A=
			});=0A=
		} else {=0A=
			var animation1 =3D {}, animation2 =3D {};=0A=
			animation1[ref] =3D (motion =3D=3D 'pos' ? '-=3D' : '+=3D') + =
distance;=0A=
			animation2[ref] =3D (motion =3D=3D 'pos' ? '+=3D' : '-=3D') + =
distance;=0A=
			el.animate(animation1, speed / 2, =
o.options.easing).animate(animation2, speed / 2, o.options.easing, =
function(){=0A=
				$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore=0A=
				if(o.callback) o.callback.apply(this, arguments); // Callback=0A=
			});=0A=
		};=0A=
		el.queue('fx', function() { el.dequeue(); });=0A=
		el.dequeue();=0A=
	});=0A=
=0A=
};=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Effects Clip 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Effects/Clip=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.effects.core.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.effects.clip =3D function(o) {=0A=
=0A=
	return this.queue(function() {=0A=
=0A=
		// Create element=0A=
		var el =3D $(this), props =3D =
['position','top','bottom','left','right','height','width'];=0A=
=0A=
		// Set options=0A=
		var mode =3D $.effects.setMode(el, o.options.mode || 'hide'); // Set =
Mode=0A=
		var direction =3D o.options.direction || 'vertical'; // Default =
direction=0A=
=0A=
		// Adjust=0A=
		$.effects.save(el, props); el.show(); // Save & Show=0A=
		var wrapper =3D $.effects.createWrapper(el).css({overflow:'hidden'}); =
// Create Wrapper=0A=
		var animate =3D el[0].tagName =3D=3D 'IMG' ? wrapper : el;=0A=
		var ref =3D {=0A=
			size: (direction =3D=3D 'vertical') ? 'height' : 'width',=0A=
			position: (direction =3D=3D 'vertical') ? 'top' : 'left'=0A=
		};=0A=
		var distance =3D (direction =3D=3D 'vertical') ? animate.height() : =
animate.width();=0A=
		if(mode =3D=3D 'show') { animate.css(ref.size, 0); =
animate.css(ref.position, distance / 2); } // Shift=0A=
=0A=
		// Animation=0A=
		var animation =3D {};=0A=
		animation[ref.size] =3D mode =3D=3D 'show' ? distance : 0;=0A=
		animation[ref.position] =3D mode =3D=3D 'show' ? 0 : distance / 2;=0A=
=0A=
		// Animate=0A=
		animate.animate(animation, { queue: false, duration: o.duration, =
easing: o.options.easing, complete: function() {=0A=
			if(mode =3D=3D 'hide') el.hide(); // Hide=0A=
			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore=0A=
			if(o.callback) o.callback.apply(el[0], arguments); // Callback=0A=
			el.dequeue();=0A=
		}});=0A=
=0A=
	});=0A=
=0A=
};=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Effects Drop 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Effects/Drop=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.effects.core.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.effects.drop =3D function(o) {=0A=
=0A=
	return this.queue(function() {=0A=
=0A=
		// Create element=0A=
		var el =3D $(this), props =3D =
['position','top','bottom','left','right','opacity'];=0A=
=0A=
		// Set options=0A=
		var mode =3D $.effects.setMode(el, o.options.mode || 'hide'); // Set =
Mode=0A=
		var direction =3D o.options.direction || 'left'; // Default Direction=0A=
=0A=
		// Adjust=0A=
		$.effects.save(el, props); el.show(); // Save & Show=0A=
		$.effects.createWrapper(el); // Create Wrapper=0A=
		var ref =3D (direction =3D=3D 'up' || direction =3D=3D 'down') ? 'top' =
: 'left';=0A=
		var motion =3D (direction =3D=3D 'up' || direction =3D=3D 'left') ? =
'pos' : 'neg';=0A=
		var distance =3D o.options.distance || (ref =3D=3D 'top' ? =
el.outerHeight({margin:true}) / 2 : el.outerWidth({margin:true}) / 2);=0A=
		if (mode =3D=3D 'show') el.css('opacity', 0).css(ref, motion =3D=3D =
'pos' ? -distance : distance); // Shift=0A=
=0A=
		// Animation=0A=
		var animation =3D {opacity: mode =3D=3D 'show' ? 1 : 0};=0A=
		animation[ref] =3D (mode =3D=3D 'show' ? (motion =3D=3D 'pos' ? '+=3D' =
: '-=3D') : (motion =3D=3D 'pos' ? '-=3D' : '+=3D')) + distance;=0A=
=0A=
		// Animate=0A=
		el.animate(animation, { queue: false, duration: o.duration, easing: =
o.options.easing, complete: function() {=0A=
			if(mode =3D=3D 'hide') el.hide(); // Hide=0A=
			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore=0A=
			if(o.callback) o.callback.apply(this, arguments); // Callback=0A=
			el.dequeue();=0A=
		}});=0A=
=0A=
	});=0A=
=0A=
};=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Effects Explode 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Effects/Explode=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.effects.core.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.effects.explode =3D function(o) {=0A=
=0A=
	return this.queue(function() {=0A=
=0A=
	var rows =3D o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) =
: 3;=0A=
	var cells =3D o.options.pieces ? =
Math.round(Math.sqrt(o.options.pieces)) : 3;=0A=
=0A=
	o.options.mode =3D o.options.mode =3D=3D 'toggle' ? =
($(this).is(':visible') ? 'hide' : 'show') : o.options.mode;=0A=
	var el =3D $(this).show().css('visibility', 'hidden');=0A=
	var offset =3D el.offset();=0A=
=0A=
	//Substract the margins - not fixing the problem yet.=0A=
	offset.top -=3D parseInt(el.css("marginTop"),10) || 0;=0A=
	offset.left -=3D parseInt(el.css("marginLeft"),10) || 0;=0A=
=0A=
	var width =3D el.outerWidth(true);=0A=
	var height =3D el.outerHeight(true);=0A=
=0A=
	for(var i=3D0;i<rows;i++) { // =3D=0A=
		for(var j=3D0;j<cells;j++) { // ||=0A=
			el=0A=
				.clone()=0A=
				.appendTo('body')=0A=
				.wrap('<div></div>')=0A=
				.css({=0A=
					position: 'absolute',=0A=
					visibility: 'visible',=0A=
					left: -j*(width/cells),=0A=
					top: -i*(height/rows)=0A=
				})=0A=
				.parent()=0A=
				.addClass('ui-effects-explode')=0A=
				.css({=0A=
					position: 'absolute',=0A=
					overflow: 'hidden',=0A=
					width: width/cells,=0A=
					height: height/rows,=0A=
					left: offset.left + j*(width/cells) + (o.options.mode =3D=3D 'show' =
? (j-Math.floor(cells/2))*(width/cells) : 0),=0A=
					top: offset.top + i*(height/rows) + (o.options.mode =3D=3D 'show' ? =
(i-Math.floor(rows/2))*(height/rows) : 0),=0A=
					opacity: o.options.mode =3D=3D 'show' ? 0 : 1=0A=
				}).animate({=0A=
					left: offset.left + j*(width/cells) + (o.options.mode =3D=3D 'show' =
? 0 : (j-Math.floor(cells/2))*(width/cells)),=0A=
					top: offset.top + i*(height/rows) + (o.options.mode =3D=3D 'show' ? =
0 : (i-Math.floor(rows/2))*(height/rows)),=0A=
					opacity: o.options.mode =3D=3D 'show' ? 1 : 0=0A=
				}, o.duration || 500);=0A=
		}=0A=
	}=0A=
=0A=
	// Set a timeout, to call the callback approx. when the other =
animations have finished=0A=
	setTimeout(function() {=0A=
=0A=
		o.options.mode =3D=3D 'show' ? el.css({ visibility: 'visible' }) : =
el.css({ visibility: 'visible' }).hide();=0A=
				if(o.callback) o.callback.apply(el[0]); // Callback=0A=
				el.dequeue();=0A=
=0A=
				$('div.ui-effects-explode').remove();=0A=
=0A=
	}, o.duration || 500);=0A=
=0A=
=0A=
	});=0A=
=0A=
};=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Effects Fade 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Effects/Fade=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.effects.core.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.effects.fade =3D function(o) {=0A=
	return this.queue(function() {=0A=
		var elem =3D $(this),=0A=
			mode =3D $.effects.setMode(elem, o.options.mode || 'hide');=0A=
=0A=
		elem.animate({ opacity: mode }, {=0A=
			queue: false,=0A=
			duration: o.duration,=0A=
			easing: o.options.easing,=0A=
			complete: function() {=0A=
				(o.callback && o.callback.apply(this, arguments));=0A=
				elem.dequeue();=0A=
			}=0A=
		});=0A=
	});=0A=
};=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Effects Fold 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Effects/Fold=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.effects.core.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.effects.fold =3D function(o) {=0A=
=0A=
	return this.queue(function() {=0A=
=0A=
		// Create element=0A=
		var el =3D $(this), props =3D =
['position','top','bottom','left','right'];=0A=
=0A=
		// Set options=0A=
		var mode =3D $.effects.setMode(el, o.options.mode || 'hide'); // Set =
Mode=0A=
		var size =3D o.options.size || 15; // Default fold size=0A=
		var horizFirst =3D !(!o.options.horizFirst); // Ensure a boolean value=0A=
		var duration =3D o.duration ? o.duration / 2 : $.fx.speeds._default / =
2;=0A=
=0A=
		// Adjust=0A=
		$.effects.save(el, props); el.show(); // Save & Show=0A=
		var wrapper =3D $.effects.createWrapper(el).css({overflow:'hidden'}); =
// Create Wrapper=0A=
		var widthFirst =3D ((mode =3D=3D 'show') !=3D horizFirst);=0A=
		var ref =3D widthFirst ? ['width', 'height'] : ['height', 'width'];=0A=
		var distance =3D widthFirst ? [wrapper.width(), wrapper.height()] : =
[wrapper.height(), wrapper.width()];=0A=
		var percent =3D /([0-9]+)%/.exec(size);=0A=
		if(percent) size =3D parseInt(percent[1],10) / 100 * distance[mode =
=3D=3D 'hide' ? 0 : 1];=0A=
		if(mode =3D=3D 'show') wrapper.css(horizFirst ? {height: 0, width: =
size} : {height: size, width: 0}); // Shift=0A=
=0A=
		// Animation=0A=
		var animation1 =3D {}, animation2 =3D {};=0A=
		animation1[ref[0]] =3D mode =3D=3D 'show' ? distance[0] : size;=0A=
		animation2[ref[1]] =3D mode =3D=3D 'show' ? distance[1] : 0;=0A=
=0A=
		// Animate=0A=
		wrapper.animate(animation1, duration, o.options.easing)=0A=
		.animate(animation2, duration, o.options.easing, function() {=0A=
			if(mode =3D=3D 'hide') el.hide(); // Hide=0A=
			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore=0A=
			if(o.callback) o.callback.apply(el[0], arguments); // Callback=0A=
			el.dequeue();=0A=
		});=0A=
=0A=
	});=0A=
=0A=
};=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Effects Highlight 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Effects/Highlight=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.effects.core.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.effects.highlight =3D function(o) {=0A=
	return this.queue(function() {=0A=
		var elem =3D $(this),=0A=
			props =3D ['backgroundImage', 'backgroundColor', 'opacity'],=0A=
			mode =3D $.effects.setMode(elem, o.options.mode || 'show'),=0A=
			animation =3D {=0A=
				backgroundColor: elem.css('backgroundColor')=0A=
			};=0A=
=0A=
		if (mode =3D=3D 'hide') {=0A=
			animation.opacity =3D 0;=0A=
		}=0A=
=0A=
		$.effects.save(elem, props);=0A=
		elem=0A=
			.show()=0A=
			.css({=0A=
				backgroundImage: 'none',=0A=
				backgroundColor: o.options.color || '#ffff99'=0A=
			})=0A=
			.animate(animation, {=0A=
				queue: false,=0A=
				duration: o.duration,=0A=
				easing: o.options.easing,=0A=
				complete: function() {=0A=
					(mode =3D=3D 'hide' && elem.hide());=0A=
					$.effects.restore(elem, props);=0A=
					(mode =3D=3D 'show' && !$.support.opacity && =
this.style.removeAttribute('filter'));=0A=
					(o.callback && o.callback.apply(this, arguments));=0A=
					elem.dequeue();=0A=
				}=0A=
			});=0A=
	});=0A=
};=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Effects Pulsate 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Effects/Pulsate=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.effects.core.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.effects.pulsate =3D function(o) {=0A=
	return this.queue(function() {=0A=
		var elem =3D $(this),=0A=
			mode =3D $.effects.setMode(elem, o.options.mode || 'show');=0A=
			times =3D ((o.options.times || 5) * 2) - 1;=0A=
			duration =3D o.duration ? o.duration / 2 : $.fx.speeds._default / 2,=0A=
			isVisible =3D elem.is(':visible'),=0A=
			animateTo =3D 0;=0A=
=0A=
		if (!isVisible) {=0A=
			elem.css('opacity', 0).show();=0A=
			animateTo =3D 1;=0A=
		}=0A=
=0A=
		if ((mode =3D=3D 'hide' && isVisible) || (mode =3D=3D 'show' && =
!isVisible)) {=0A=
			times--;=0A=
		}=0A=
=0A=
		for (var i =3D 0; i < times; i++) {=0A=
			elem.animate({ opacity: animateTo }, duration, o.options.easing);=0A=
			animateTo =3D (animateTo + 1) % 2;=0A=
		}=0A=
=0A=
		elem.animate({ opacity: animateTo }, duration, o.options.easing, =
function() {=0A=
			if (animateTo =3D=3D 0) {=0A=
				elem.hide();=0A=
			}=0A=
			(o.callback && o.callback.apply(this, arguments));=0A=
		});=0A=
=0A=
		elem=0A=
			.queue('fx', function() { elem.dequeue(); })=0A=
			.dequeue();=0A=
	});=0A=
};=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Effects Scale 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Effects/Scale=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.effects.core.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.effects.puff =3D function(o) {=0A=
	return this.queue(function() {=0A=
		var elem =3D $(this),=0A=
			mode =3D $.effects.setMode(elem, o.options.mode || 'hide'),=0A=
			percent =3D parseInt(o.options.percent, 10) || 150,=0A=
			factor =3D percent / 100,=0A=
			original =3D { height: elem.height(), width: elem.width() };=0A=
=0A=
		$.extend(o.options, {=0A=
			fade: true,=0A=
			mode: mode,=0A=
			percent: mode =3D=3D 'hide' ? percent : 100,=0A=
			from: mode =3D=3D 'hide'=0A=
				? original=0A=
				: {=0A=
					height: original.height * factor,=0A=
					width: original.width * factor=0A=
				}=0A=
		});=0A=
=0A=
		elem.effect('scale', o.options, o.duration, o.callback);=0A=
		elem.dequeue();=0A=
	});=0A=
};=0A=
=0A=
$.effects.scale =3D function(o) {=0A=
=0A=
	return this.queue(function() {=0A=
=0A=
		// Create element=0A=
		var el =3D $(this);=0A=
=0A=
		// Set options=0A=
		var options =3D $.extend(true, {}, o.options);=0A=
		var mode =3D $.effects.setMode(el, o.options.mode || 'effect'); // Set =
Mode=0A=
		var percent =3D parseInt(o.options.percent,10) || =
(parseInt(o.options.percent,10) =3D=3D 0 ? 0 : (mode =3D=3D 'hide' ? 0 : =
100)); // Set default scaling percent=0A=
		var direction =3D o.options.direction || 'both'; // Set default axis=0A=
		var origin =3D o.options.origin; // The origin of the scaling=0A=
		if (mode !=3D 'effect') { // Set default origin and restore for =
show/hide=0A=
			options.origin =3D origin || ['middle','center'];=0A=
			options.restore =3D true;=0A=
		}=0A=
		var original =3D {height: el.height(), width: el.width()}; // Save =
original=0A=
		el.from =3D o.options.from || (mode =3D=3D 'show' ? {height: 0, width: =
0} : original); // Default from state=0A=
=0A=
		// Adjust=0A=
		var factor =3D { // Set scaling factor=0A=
			y: direction !=3D 'horizontal' ? (percent / 100) : 1,=0A=
			x: direction !=3D 'vertical' ? (percent / 100) : 1=0A=
		};=0A=
		el.to =3D {height: original.height * factor.y, width: original.width * =
factor.x}; // Set to state=0A=
=0A=
		if (o.options.fade) { // Fade option to support puff=0A=
			if (mode =3D=3D 'show') {el.from.opacity =3D 0; el.to.opacity =3D 1;};=0A=
			if (mode =3D=3D 'hide') {el.from.opacity =3D 1; el.to.opacity =3D 0;};=0A=
		};=0A=
=0A=
		// Animation=0A=
		options.from =3D el.from; options.to =3D el.to; options.mode =3D mode;=0A=
=0A=
		// Animate=0A=
		el.effect('size', options, o.duration, o.callback);=0A=
		el.dequeue();=0A=
	});=0A=
=0A=
};=0A=
=0A=
$.effects.size =3D function(o) {=0A=
=0A=
	return this.queue(function() {=0A=
=0A=
		// Create element=0A=
		var el =3D $(this), props =3D =
['position','top','bottom','left','right','width','height','overflow','op=
acity'];=0A=
		var props1 =3D =
['position','top','bottom','left','right','overflow','opacity']; // =
Always restore=0A=
		var props2 =3D ['width','height','overflow']; // Copy for children=0A=
		var cProps =3D ['fontSize'];=0A=
		var vProps =3D ['borderTopWidth', 'borderBottomWidth', 'paddingTop', =
'paddingBottom'];=0A=
		var hProps =3D ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', =
'paddingRight'];=0A=
=0A=
		// Set options=0A=
		var mode =3D $.effects.setMode(el, o.options.mode || 'effect'); // Set =
Mode=0A=
		var restore =3D o.options.restore || false; // Default restore=0A=
		var scale =3D o.options.scale || 'both'; // Default scale mode=0A=
		var origin =3D o.options.origin; // The origin of the sizing=0A=
		var original =3D {height: el.height(), width: el.width()}; // Save =
original=0A=
		el.from =3D o.options.from || original; // Default from state=0A=
		el.to =3D o.options.to || original; // Default to state=0A=
		// Adjust=0A=
		if (origin) { // Calculate baseline shifts=0A=
			var baseline =3D $.effects.getBaseline(origin, original);=0A=
			el.from.top =3D (original.height - el.from.height) * baseline.y;=0A=
			el.from.left =3D (original.width - el.from.width) * baseline.x;=0A=
			el.to.top =3D (original.height - el.to.height) * baseline.y;=0A=
			el.to.left =3D (original.width - el.to.width) * baseline.x;=0A=
		};=0A=
		var factor =3D { // Set scaling factor=0A=
			from: {y: el.from.height / original.height, x: el.from.width / =
original.width},=0A=
			to: {y: el.to.height / original.height, x: el.to.width / =
original.width}=0A=
		};=0A=
		if (scale =3D=3D 'box' || scale =3D=3D 'both') { // Scale the css box=0A=
			if (factor.from.y !=3D factor.to.y) { // Vertical props scaling=0A=
				props =3D props.concat(vProps);=0A=
				el.from =3D $.effects.setTransition(el, vProps, factor.from.y, =
el.from);=0A=
				el.to =3D $.effects.setTransition(el, vProps, factor.to.y, el.to);=0A=
			};=0A=
			if (factor.from.x !=3D factor.to.x) { // Horizontal props scaling=0A=
				props =3D props.concat(hProps);=0A=
				el.from =3D $.effects.setTransition(el, hProps, factor.from.x, =
el.from);=0A=
				el.to =3D $.effects.setTransition(el, hProps, factor.to.x, el.to);=0A=
			};=0A=
		};=0A=
		if (scale =3D=3D 'content' || scale =3D=3D 'both') { // Scale the =
content=0A=
			if (factor.from.y !=3D factor.to.y) { // Vertical props scaling=0A=
				props =3D props.concat(cProps);=0A=
				el.from =3D $.effects.setTransition(el, cProps, factor.from.y, =
el.from);=0A=
				el.to =3D $.effects.setTransition(el, cProps, factor.to.y, el.to);=0A=
			};=0A=
		};=0A=
		$.effects.save(el, restore ? props : props1); el.show(); // Save & Show=0A=
		$.effects.createWrapper(el); // Create Wrapper=0A=
		el.css('overflow','hidden').css(el.from); // Shift=0A=
=0A=
		// Animate=0A=
		if (scale =3D=3D 'content' || scale =3D=3D 'both') { // Scale the =
children=0A=
			vProps =3D =
vProps.concat(['marginTop','marginBottom']).concat(cProps); // Add =
margins/font-size=0A=
			hProps =3D hProps.concat(['marginLeft','marginRight']); // Add margins=0A=
			props2 =3D props.concat(vProps).concat(hProps); // Concat=0A=
			el.find("*[width]").each(function(){=0A=
				child =3D $(this);=0A=
				if (restore) $.effects.save(child, props2);=0A=
				var c_original =3D {height: child.height(), width: child.width()}; =
// Save original=0A=
				child.from =3D {height: c_original.height * factor.from.y, width: =
c_original.width * factor.from.x};=0A=
				child.to =3D {height: c_original.height * factor.to.y, width: =
c_original.width * factor.to.x};=0A=
				if (factor.from.y !=3D factor.to.y) { // Vertical props scaling=0A=
					child.from =3D $.effects.setTransition(child, vProps, =
factor.from.y, child.from);=0A=
					child.to =3D $.effects.setTransition(child, vProps, factor.to.y, =
child.to);=0A=
				};=0A=
				if (factor.from.x !=3D factor.to.x) { // Horizontal props scaling=0A=
					child.from =3D $.effects.setTransition(child, hProps, =
factor.from.x, child.from);=0A=
					child.to =3D $.effects.setTransition(child, hProps, factor.to.x, =
child.to);=0A=
				};=0A=
				child.css(child.from); // Shift children=0A=
				child.animate(child.to, o.duration, o.options.easing, function(){=0A=
					if (restore) $.effects.restore(child, props2); // Restore children=0A=
				}); // Animate children=0A=
			});=0A=
		};=0A=
=0A=
		// Animate=0A=
		el.animate(el.to, { queue: false, duration: o.duration, easing: =
o.options.easing, complete: function() {=0A=
			if (el.to.opacity =3D=3D=3D 0) {=0A=
				el.css('opacity', el.from.opacity);=0A=
			}=0A=
			if(mode =3D=3D 'hide') el.hide(); // Hide=0A=
			$.effects.restore(el, restore ? props : props1); =
$.effects.removeWrapper(el); // Restore=0A=
			if(o.callback) o.callback.apply(this, arguments); // Callback=0A=
			el.dequeue();=0A=
		}});=0A=
=0A=
	});=0A=
=0A=
};=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Effects Shake 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Effects/Shake=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.effects.core.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.effects.shake =3D function(o) {=0A=
=0A=
	return this.queue(function() {=0A=
=0A=
		// Create element=0A=
		var el =3D $(this), props =3D =
['position','top','bottom','left','right'];=0A=
=0A=
		// Set options=0A=
		var mode =3D $.effects.setMode(el, o.options.mode || 'effect'); // Set =
Mode=0A=
		var direction =3D o.options.direction || 'left'; // Default direction=0A=
		var distance =3D o.options.distance || 20; // Default distance=0A=
		var times =3D o.options.times || 3; // Default # of times=0A=
		var speed =3D o.duration || o.options.duration || 140; // Default =
speed per shake=0A=
=0A=
		// Adjust=0A=
		$.effects.save(el, props); el.show(); // Save & Show=0A=
		$.effects.createWrapper(el); // Create Wrapper=0A=
		var ref =3D (direction =3D=3D 'up' || direction =3D=3D 'down') ? 'top' =
: 'left';=0A=
		var motion =3D (direction =3D=3D 'up' || direction =3D=3D 'left') ? =
'pos' : 'neg';=0A=
=0A=
		// Animation=0A=
		var animation =3D {}, animation1 =3D {}, animation2 =3D {};=0A=
		animation[ref] =3D (motion =3D=3D 'pos' ? '-=3D' : '+=3D')  + distance;=0A=
		animation1[ref] =3D (motion =3D=3D 'pos' ? '+=3D' : '-=3D')  + =
distance * 2;=0A=
		animation2[ref] =3D (motion =3D=3D 'pos' ? '-=3D' : '+=3D')  + =
distance * 2;=0A=
=0A=
		// Animate=0A=
		el.animate(animation, speed, o.options.easing);=0A=
		for (var i =3D 1; i < times; i++) { // Shakes=0A=
			el.animate(animation1, speed, o.options.easing).animate(animation2, =
speed, o.options.easing);=0A=
		};=0A=
		el.animate(animation1, speed, o.options.easing).=0A=
		animate(animation, speed / 2, o.options.easing, function(){ // Last =
shake=0A=
			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore=0A=
			if(o.callback) o.callback.apply(this, arguments); // Callback=0A=
		});=0A=
		el.queue('fx', function() { el.dequeue(); });=0A=
		el.dequeue();=0A=
	});=0A=
=0A=
};=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Effects Slide 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Effects/Slide=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.effects.core.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.effects.slide =3D function(o) {=0A=
=0A=
	return this.queue(function() {=0A=
=0A=
		// Create element=0A=
		var el =3D $(this), props =3D =
['position','top','bottom','left','right'];=0A=
=0A=
		// Set options=0A=
		var mode =3D $.effects.setMode(el, o.options.mode || 'show'); // Set =
Mode=0A=
		var direction =3D o.options.direction || 'left'; // Default Direction=0A=
=0A=
		// Adjust=0A=
		$.effects.save(el, props); el.show(); // Save & Show=0A=
		$.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper=0A=
		var ref =3D (direction =3D=3D 'up' || direction =3D=3D 'down') ? 'top' =
: 'left';=0A=
		var motion =3D (direction =3D=3D 'up' || direction =3D=3D 'left') ? =
'pos' : 'neg';=0A=
		var distance =3D o.options.distance || (ref =3D=3D 'top' ? =
el.outerHeight({margin:true}) : el.outerWidth({margin:true}));=0A=
		if (mode =3D=3D 'show') el.css(ref, motion =3D=3D 'pos' ? =
(isNaN(distance) ? "-" + distance : -distance) : distance); // Shift=0A=
=0A=
		// Animation=0A=
		var animation =3D {};=0A=
		animation[ref] =3D (mode =3D=3D 'show' ? (motion =3D=3D 'pos' ? '+=3D' =
: '-=3D') : (motion =3D=3D 'pos' ? '-=3D' : '+=3D')) + distance;=0A=
=0A=
		// Animate=0A=
		el.animate(animation, { queue: false, duration: o.duration, easing: =
o.options.easing, complete: function() {=0A=
			if(mode =3D=3D 'hide') el.hide(); // Hide=0A=
			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore=0A=
			if(o.callback) o.callback.apply(this, arguments); // Callback=0A=
			el.dequeue();=0A=
		}});=0A=
=0A=
	});=0A=
=0A=
};=0A=
=0A=
})(jQuery);=0A=
/*=0A=
 * jQuery UI Effects Transfer 1.8.13=0A=
 *=0A=
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * http://docs.jquery.com/UI/Effects/Transfer=0A=
 *=0A=
 * Depends:=0A=
 *	jquery.effects.core.js=0A=
 */=0A=
(function( $, undefined ) {=0A=
=0A=
$.effects.transfer =3D function(o) {=0A=
	return this.queue(function() {=0A=
		var elem =3D $(this),=0A=
			target =3D $(o.options.to),=0A=
			endPosition =3D target.offset(),=0A=
			animation =3D {=0A=
				top: endPosition.top,=0A=
				left: endPosition.left,=0A=
				height: target.innerHeight(),=0A=
				width: target.innerWidth()=0A=
			},=0A=
			startPosition =3D elem.offset(),=0A=
			transfer =3D $('<div class=3D"ui-effects-transfer"></div>')=0A=
				.appendTo(document.body)=0A=
				.addClass(o.options.className)=0A=
				.css({=0A=
					top: startPosition.top,=0A=
					left: startPosition.left,=0A=
					height: elem.innerHeight(),=0A=
					width: elem.innerWidth(),=0A=
					position: 'absolute'=0A=
				})=0A=
				.animate(animation, o.duration, o.options.easing, function() {=0A=
					transfer.remove();=0A=
					(o.callback && o.callback.apply(elem[0], arguments));=0A=
					elem.dequeue();=0A=
				});=0A=
	});=0A=
};=0A=
=0A=
})(jQuery);=0A=

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Public/javascript/jquery.form.js

/*!=0A=
 * jQuery Form Plugin=0A=
 * version: 2.47 (04-SEP-2010)=0A=
 * @requires jQuery v1.3.2 or later=0A=
 *=0A=
 * Examples and documentation at: http://malsup.com/jquery/form/=0A=
 * Dual licensed under the MIT and GPL licenses:=0A=
 *   http://www.opensource.org/licenses/mit-license.php=0A=
 *   http://www.gnu.org/licenses/gpl.html=0A=
 */=0A=
;(function($) {=0A=
=0A=
/*=0A=
	Usage Note:=0A=
	-----------=0A=
	Do not use both ajaxSubmit and ajaxForm on the same form.  These=0A=
	functions are intended to be exclusive.  Use ajaxSubmit if you want=0A=
	to bind your own submit handler to the form.  For example,=0A=
=0A=
	$(document).ready(function() {=0A=
		$('#myForm').bind('submit', function() {=0A=
			$(this).ajaxSubmit({=0A=
				target: '#output'=0A=
			});=0A=
			return false; // <-- important!=0A=
		});=0A=
	});=0A=
=0A=
	Use ajaxForm when you want the plugin to manage all the event binding=0A=
	for you.  For example,=0A=
=0A=
	$(document).ready(function() {=0A=
		$('#myForm').ajaxForm({=0A=
			target: '#output'=0A=
		});=0A=
	});=0A=
=0A=
	When using ajaxForm, the ajaxSubmit function will be invoked for you=0A=
	at the appropriate time.=0A=
*/=0A=
=0A=
/**=0A=
 * ajaxSubmit() provides a mechanism for immediately submitting=0A=
 * an HTML form using AJAX.=0A=
 */=0A=
$.fn.ajaxSubmit =3D function(options) {=0A=
	// fast fail if nothing selected (http://dev.jquery.com/ticket/2752)=0A=
	if (!this.length) {=0A=
		log('ajaxSubmit: skipping submit process - no element selected');=0A=
		return this;=0A=
	}=0A=
=0A=
	if (typeof options =3D=3D 'function') {=0A=
		options =3D { success: options };=0A=
	}=0A=
=0A=
	var url =3D $.trim(this.attr('action'));=0A=
	if (url) {=0A=
		// clean url (don't include hash vaue)=0A=
		url =3D (url.match(/^([^#]+)/)||[])[1];=0A=
	}=0A=
	url =3D url || window.location.href || '';=0A=
=0A=
	options =3D $.extend(true, {=0A=
		url:  url,=0A=
		type: this.attr('method') || 'GET',=0A=
		iframeSrc: /^https/i.test(window.location.href || '') ? =
'javascript:false' : 'about:blank'=0A=
	}, options);=0A=
=0A=
	// hook for manipulating the form data before it is extracted;=0A=
	// convenient for use with rich editors like tinyMCE or FCKEditor=0A=
	var veto =3D {};=0A=
	this.trigger('form-pre-serialize', [this, options, veto]);=0A=
	if (veto.veto) {=0A=
		log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');=0A=
		return this;=0A=
	}=0A=
=0A=
	// provide opportunity to alter form data before it is serialized=0A=
	if (options.beforeSerialize && options.beforeSerialize(this, options) =
=3D=3D=3D false) {=0A=
		log('ajaxSubmit: submit aborted via beforeSerialize callback');=0A=
		return this;=0A=
	}=0A=
=0A=
	var n,v,a =3D this.formToArray(options.semantic);=0A=
	if (options.data) {=0A=
		options.extraData =3D options.data;=0A=
		for (n in options.data) {=0A=
			if(options.data[n] instanceof Array) {=0A=
				for (var k in options.data[n]) {=0A=
					a.push( { name: n, value: options.data[n][k] } );=0A=
				}=0A=
			}=0A=
			else {=0A=
				v =3D options.data[n];=0A=
				v =3D $.isFunction(v) ? v() : v; // if value is fn, invoke it=0A=
				a.push( { name: n, value: v } );=0A=
			}=0A=
		}=0A=
	}=0A=
=0A=
	// give pre-submit callback an opportunity to abort the submit=0A=
	if (options.beforeSubmit && options.beforeSubmit(a, this, options) =
=3D=3D=3D false) {=0A=
		log('ajaxSubmit: submit aborted via beforeSubmit callback');=0A=
		return this;=0A=
	}=0A=
=0A=
	// fire vetoable 'validate' event=0A=
	this.trigger('form-submit-validate', [a, this, options, veto]);=0A=
	if (veto.veto) {=0A=
		log('ajaxSubmit: submit vetoed via form-submit-validate trigger');=0A=
		return this;=0A=
	}=0A=
=0A=
	var q =3D $.param(a);=0A=
=0A=
	if (options.type.toUpperCase() =3D=3D 'GET') {=0A=
		options.url +=3D (options.url.indexOf('?') >=3D 0 ? '&' : '?') + q;=0A=
		options.data =3D null;  // data is null for 'get'=0A=
	}=0A=
	else {=0A=
		options.data =3D q; // data is the query string for 'post'=0A=
	}=0A=
=0A=
	var $form =3D this, callbacks =3D [];=0A=
	if (options.resetForm) {=0A=
		callbacks.push(function() { $form.resetForm(); });=0A=
	}=0A=
	if (options.clearForm) {=0A=
		callbacks.push(function() { $form.clearForm(); });=0A=
	}=0A=
=0A=
	// perform a load on the target only if dataType is not provided=0A=
	if (!options.dataType && options.target) {=0A=
		var oldSuccess =3D options.success || function(){};=0A=
		callbacks.push(function(data) {=0A=
			var fn =3D options.replaceTarget ? 'replaceWith' : 'html';=0A=
			$(options.target)[fn](data).each(oldSuccess, arguments);=0A=
		});=0A=
	}=0A=
	else if (options.success) {=0A=
		callbacks.push(options.success);=0A=
	}=0A=
=0A=
	options.success =3D function(data, status, xhr) { // jQuery 1.4+ passes =
xhr as 3rd arg=0A=
		var context =3D options.context || options;   // jQuery 1.4+ supports =
scope context =0A=
		for (var i=3D0, max=3Dcallbacks.length; i < max; i++) {=0A=
			callbacks[i].apply(context, [data, status, xhr || $form, $form]);=0A=
		}=0A=
	};=0A=
=0A=
	// are there files to upload?=0A=
	var fileInputs =3D $('input:file', this).length > 0;=0A=
	var mp =3D 'multipart/form-data';=0A=
	var multipart =3D ($form.attr('enctype') =3D=3D mp || =
$form.attr('encoding') =3D=3D mp);=0A=
=0A=
	// options.iframe allows user to force iframe mode=0A=
	// 06-NOV-09: now defaulting to iframe mode if file input is detected=0A=
   if (options.iframe !=3D=3D false && (fileInputs || options.iframe || =
multipart)) {=0A=
	   // hack to fix Safari hang (thanks to Tim Molendijk for this)=0A=
	   // see:  =
http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab5=
10dd5d=0A=
	   if (options.closeKeepAlive) {=0A=
		   $.get(options.closeKeepAlive, fileUpload);=0A=
		}=0A=
	   else {=0A=
		   fileUpload();=0A=
		}=0A=
   }=0A=
   else {=0A=
	   $.ajax(options);=0A=
   }=0A=
=0A=
	// fire 'notify' event=0A=
	this.trigger('form-submit-notify', [this, options]);=0A=
	return this;=0A=
=0A=
=0A=
	// private function for handling file uploads (hat tip to YAHOO!)=0A=
	function fileUpload() {=0A=
		var form =3D $form[0];=0A=
=0A=
		if ($(':input[name=3Dsubmit],:input[id=3Dsubmit]', form).length) {=0A=
			// if there is an input with a name or id of 'submit' then we won't be=0A=
			// able to invoke the submit fn on the form (at least not x-browser)=0A=
			alert('Error: Form elements must not have name or id of "submit".');=0A=
			return;=0A=
		}=0A=
		=0A=
		var s =3D $.extend(true, {}, $.ajaxSettings, options);=0A=
		s.context =3D s.context || s;=0A=
		var id =3D 'jqFormIO' + (new Date().getTime()), fn =3D '_'+id;=0A=
		window[fn] =3D function() {=0A=
			var f =3D $io.data('form-plugin-onload');=0A=
			if (f) {=0A=
				f();=0A=
				window[fn] =3D undefined;=0A=
				try { delete window[fn]; } catch(e){}=0A=
			}=0A=
		}=0A=
		var $io =3D $('<iframe id=3D"' + id + '" name=3D"' + id + '" src=3D"'+ =
s.iframeSrc +'" onload=3D"window[\'_\'+this.id]()" />');=0A=
		var io =3D $io[0];=0A=
=0A=
		$io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });=0A=
=0A=
		var xhr =3D { // mock object=0A=
			aborted: 0,=0A=
			responseText: null,=0A=
			responseXML: null,=0A=
			status: 0,=0A=
			statusText: 'n/a',=0A=
			getAllResponseHeaders: function() {},=0A=
			getResponseHeader: function() {},=0A=
			setRequestHeader: function() {},=0A=
			abort: function() {=0A=
				this.aborted =3D 1;=0A=
				$io.attr('src', s.iframeSrc); // abort op in progress=0A=
			}=0A=
		};=0A=
=0A=
		var g =3D s.global;=0A=
		// trigger ajax global events so that activity/block indicators work =
like normal=0A=
		if (g && ! $.active++) {=0A=
			$.event.trigger("ajaxStart");=0A=
		}=0A=
		if (g) {=0A=
			$.event.trigger("ajaxSend", [xhr, s]);=0A=
		}=0A=
=0A=
		if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) =3D=3D=3D =
false) {=0A=
			if (s.global) { =0A=
				$.active--;=0A=
			}=0A=
			return;=0A=
		}=0A=
		if (xhr.aborted) {=0A=
			return;=0A=
		}=0A=
=0A=
		var cbInvoked =3D false;=0A=
		var timedOut =3D 0;=0A=
=0A=
		// add submitting element to data if we know it=0A=
		var sub =3D form.clk;=0A=
		if (sub) {=0A=
			var n =3D sub.name;=0A=
			if (n && !sub.disabled) {=0A=
				s.extraData =3D s.extraData || {};=0A=
				s.extraData[n] =3D sub.value;=0A=
				if (sub.type =3D=3D "image") {=0A=
					s.extraData[n+'.x'] =3D form.clk_x;=0A=
					s.extraData[n+'.y'] =3D form.clk_y;=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		// take a breath so that pending repaints get some cpu time before the =
upload starts=0A=
		function doSubmit() {=0A=
			// make sure form attrs are set=0A=
			var t =3D $form.attr('target'), a =3D $form.attr('action');=0A=
=0A=
			// update form attrs in IE friendly way=0A=
			form.setAttribute('target',id);=0A=
			if (form.getAttribute('method') !=3D 'POST') {=0A=
				form.setAttribute('method', 'POST');=0A=
			}=0A=
			if (form.getAttribute('action') !=3D s.url) {=0A=
				form.setAttribute('action', s.url);=0A=
			}=0A=
=0A=
			// ie borks in some cases when setting encoding=0A=
			if (! s.skipEncodingOverride) {=0A=
				$form.attr({=0A=
					encoding: 'multipart/form-data',=0A=
					enctype:  'multipart/form-data'=0A=
				});=0A=
			}=0A=
=0A=
			// support timout=0A=
			if (s.timeout) {=0A=
				setTimeout(function() { timedOut =3D true; cb(); }, s.timeout);=0A=
			}=0A=
=0A=
			// add "extra" data to form if provided in options=0A=
			var extraInputs =3D [];=0A=
			try {=0A=
				if (s.extraData) {=0A=
					for (var n in s.extraData) {=0A=
						extraInputs.push(=0A=
							$('<input type=3D"hidden" name=3D"'+n+'" =
value=3D"'+s.extraData[n]+'" />')=0A=
								.appendTo(form)[0]);=0A=
					}=0A=
				}=0A=
=0A=
				// add iframe to doc and submit the form=0A=
				$io.appendTo('body');=0A=
				$io.data('form-plugin-onload', cb);=0A=
				form.submit();=0A=
			}=0A=
			finally {=0A=
				// reset attrs and remove "extra" input elements=0A=
				form.setAttribute('action',a);=0A=
				if(t) {=0A=
					form.setAttribute('target', t);=0A=
				} else {=0A=
					$form.removeAttr('target');=0A=
				}=0A=
				$(extraInputs).remove();=0A=
			}=0A=
		}=0A=
=0A=
		if (s.forceSync) {=0A=
			doSubmit();=0A=
		}=0A=
		else {=0A=
			setTimeout(doSubmit, 10); // this lets dom updates render=0A=
		}=0A=
	=0A=
		var data, doc, domCheckCount =3D 50;=0A=
=0A=
		function cb() {=0A=
			if (cbInvoked) {=0A=
				return;=0A=
			}=0A=
=0A=
			$io.removeData('form-plugin-onload');=0A=
			=0A=
			var ok =3D true;=0A=
			try {=0A=
				if (timedOut) {=0A=
					throw 'timeout';=0A=
				}=0A=
				// extract the server response from the iframe=0A=
				doc =3D io.contentWindow ? io.contentWindow.document : =
io.contentDocument ? io.contentDocument : io.document;=0A=
				=0A=
				var isXml =3D s.dataType =3D=3D 'xml' || doc.XMLDocument || =
$.isXMLDoc(doc);=0A=
				log('isXml=3D'+isXml);=0A=
				if (!isXml && window.opera && (doc.body =3D=3D null || =
doc.body.innerHTML =3D=3D '')) {=0A=
					if (--domCheckCount) {=0A=
						// in some browsers (Opera) the iframe DOM is not always =
traversable when=0A=
						// the onload callback fires, so we loop a bit to accommodate=0A=
						log('requeing onLoad callback, DOM not available');=0A=
						setTimeout(cb, 250);=0A=
						return;=0A=
					}=0A=
					// let this fall through because server response could be an empty =
document=0A=
					//log('Could not access iframe DOM after mutiple tries.');=0A=
					//throw 'DOMException: not available';=0A=
				}=0A=
=0A=
				//log('response detected');=0A=
				cbInvoked =3D true;=0A=
				xhr.responseText =3D doc.documentElement ? =
doc.documentElement.innerHTML : null; =0A=
				xhr.responseXML =3D doc.XMLDocument ? doc.XMLDocument : doc;=0A=
				xhr.getResponseHeader =3D function(header){=0A=
					var headers =3D {'content-type': s.dataType};=0A=
					return headers[header];=0A=
				};=0A=
=0A=
				var scr =3D /(json|script)/.test(s.dataType);=0A=
				if (scr || s.textarea) {=0A=
					// see if user embedded response in textarea=0A=
					var ta =3D doc.getElementsByTagName('textarea')[0];=0A=
					if (ta) {=0A=
						xhr.responseText =3D ta.value;=0A=
					}=0A=
					else if (scr) {=0A=
						// account for browsers injecting pre around json response=0A=
						var pre =3D doc.getElementsByTagName('pre')[0];=0A=
						if (pre) {=0A=
							xhr.responseText =3D pre.innerHTML;=0A=
						}=0A=
					}			  =0A=
				}=0A=
				else if (s.dataType =3D=3D 'xml' && !xhr.responseXML && =
xhr.responseText !=3D null) {=0A=
					xhr.responseXML =3D toXml(xhr.responseText);=0A=
				}=0A=
				data =3D $.httpData(xhr, s.dataType);=0A=
			}=0A=
			catch(e){=0A=
				log('error caught:',e);=0A=
				ok =3D false;=0A=
				xhr.error =3D e;=0A=
				$.handleError(s, xhr, 'error', e);=0A=
			}=0A=
=0A=
			// ordering of these callbacks/triggers is odd, but that's how $.ajax =
does it=0A=
			if (ok) {=0A=
				s.success.call(s.context, data, 'success', xhr);=0A=
				if (g) {=0A=
					$.event.trigger("ajaxSuccess", [xhr, s]);=0A=
				}=0A=
			}=0A=
			if (g) {=0A=
				$.event.trigger("ajaxComplete", [xhr, s]);=0A=
			}=0A=
			if (g && ! --$.active) {=0A=
				$.event.trigger("ajaxStop");=0A=
			}=0A=
			if (s.complete) {=0A=
				s.complete.call(s.context, xhr, ok ? 'success' : 'error');=0A=
			}=0A=
=0A=
			// clean up=0A=
			setTimeout(function() {=0A=
				$io.removeData('form-plugin-onload');=0A=
				$io.remove();=0A=
				xhr.responseXML =3D null;=0A=
			}, 100);=0A=
		}=0A=
=0A=
		function toXml(s, doc) {=0A=
			if (window.ActiveXObject) {=0A=
				doc =3D new ActiveXObject('Microsoft.XMLDOM');=0A=
				doc.async =3D 'false';=0A=
				doc.loadXML(s);=0A=
			}=0A=
			else {=0A=
				doc =3D (new DOMParser()).parseFromString(s, 'text/xml');=0A=
			}=0A=
			return (doc && doc.documentElement && doc.documentElement.tagName =
!=3D 'parsererror') ? doc : null;=0A=
		}=0A=
	}=0A=
};=0A=
=0A=
/**=0A=
 * ajaxForm() provides a mechanism for fully automating form submission.=0A=
 *=0A=
 * The advantages of using this method instead of ajaxSubmit() are:=0A=
 *=0A=
 * 1: This method will include coordinates for <input type=3D"image" /> =
elements (if the element=0A=
 *	is used to submit the form).=0A=
 * 2. This method will include the submit element's name/value data (for =
the element that was=0A=
 *	used to submit the form).=0A=
 * 3. This method binds the submit() method to the form for you.=0A=
 *=0A=
 * The options argument for ajaxForm works exactly as it does for =
ajaxSubmit.  ajaxForm merely=0A=
 * passes the options argument along after properly binding events for =
submit elements and=0A=
 * the form itself.=0A=
 */=0A=
$.fn.ajaxForm =3D function(options) {=0A=
	// in jQuery 1.3+ we can fix mistakes with the ready state=0A=
	if (this.length =3D=3D=3D 0) {=0A=
		var o =3D { s: this.selector, c: this.context };=0A=
		if (!$.isReady && o.s) {=0A=
			log('DOM not ready, queuing ajaxForm');=0A=
			$(function() {=0A=
				$(o.s,o.c).ajaxForm(options);=0A=
			});=0A=
			return this;=0A=
		}=0A=
		// is your DOM ready?  =
http://docs.jquery.com/Tutorials:Introducing_$(document).ready()=0A=
		log('terminating; zero elements found by selector' + ($.isReady ? '' : =
' (DOM not ready)'));=0A=
		return this;=0A=
	}=0A=
	=0A=
	return this.ajaxFormUnbind().bind('submit.form-plugin', function(e) {=0A=
		if (!e.isDefaultPrevented()) { // if event has been canceled, don't =
proceed=0A=
			e.preventDefault();=0A=
			$(this).ajaxSubmit(options);=0A=
		}=0A=
	}).bind('click.form-plugin', function(e) {=0A=
		var target =3D e.target;=0A=
		var $el =3D $(target);=0A=
		if (!($el.is(":submit,input:image"))) {=0A=
			// is this a child element of the submit el?  (ex: a span within a =
button)=0A=
			var t =3D $el.closest(':submit');=0A=
			if (t.length =3D=3D 0) {=0A=
				return;=0A=
			}=0A=
			target =3D t[0];=0A=
		}=0A=
		var form =3D this;=0A=
		form.clk =3D target;=0A=
		if (target.type =3D=3D 'image') {=0A=
			if (e.offsetX !=3D undefined) {=0A=
				form.clk_x =3D e.offsetX;=0A=
				form.clk_y =3D e.offsetY;=0A=
			} else if (typeof $.fn.offset =3D=3D 'function') { // try to use =
dimensions plugin=0A=
				var offset =3D $el.offset();=0A=
				form.clk_x =3D e.pageX - offset.left;=0A=
				form.clk_y =3D e.pageY - offset.top;=0A=
			} else {=0A=
				form.clk_x =3D e.pageX - target.offsetLeft;=0A=
				form.clk_y =3D e.pageY - target.offsetTop;=0A=
			}=0A=
		}=0A=
		// clear form vars=0A=
		setTimeout(function() { form.clk =3D form.clk_x =3D form.clk_y =3D =
null; }, 100);=0A=
	});=0A=
};=0A=
=0A=
// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm=0A=
$.fn.ajaxFormUnbind =3D function() {=0A=
	return this.unbind('submit.form-plugin click.form-plugin');=0A=
};=0A=
=0A=
/**=0A=
 * formToArray() gathers form element data into an array of objects that =
can=0A=
 * be passed to any of the following ajax functions: $.get, $.post, or =
load.=0A=
 * Each object in the array has both a 'name' and 'value' property.  An =
example of=0A=
 * an array for a simple login form might be:=0A=
 *=0A=
 * [ { name: 'username', value: 'jresig' }, { name: 'password', value: =
'secret' } ]=0A=
 *=0A=
 * It is this array that is passed to pre-submit callback functions =
provided to the=0A=
 * ajaxSubmit() and ajaxForm() methods.=0A=
 */=0A=
$.fn.formToArray =3D function(semantic) {=0A=
	var a =3D [];=0A=
	if (this.length =3D=3D=3D 0) {=0A=
		return a;=0A=
	}=0A=
=0A=
	var form =3D this[0];=0A=
	var els =3D semantic ? form.getElementsByTagName('*') : form.elements;=0A=
	if (!els) {=0A=
		return a;=0A=
	}=0A=
	=0A=
	var i,j,n,v,el;=0A=
	for(i=3D0, max=3Dels.length; i < max; i++) {=0A=
		el =3D els[i];=0A=
		n =3D el.name;=0A=
		if (!n) {=0A=
			continue;=0A=
		}=0A=
=0A=
		if (semantic && form.clk && el.type =3D=3D "image") {=0A=
			// handle image inputs on the fly when semantic =3D=3D true=0A=
			if(!el.disabled && form.clk =3D=3D el) {=0A=
				a.push({name: n, value: $(el).val()});=0A=
				a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: =
form.clk_y});=0A=
			}=0A=
			continue;=0A=
		}=0A=
=0A=
		v =3D $.fieldValue(el, true);=0A=
		if (v && v.constructor =3D=3D Array) {=0A=
			for(j=3D0, jmax=3Dv.length; j < jmax; j++) {=0A=
				a.push({name: n, value: v[j]});=0A=
			}=0A=
		}=0A=
		else if (v !=3D=3D null && typeof v !=3D 'undefined') {=0A=
			a.push({name: n, value: v});=0A=
		}=0A=
	}=0A=
=0A=
	if (!semantic && form.clk) {=0A=
		// input type=3D=3D'image' are not found in elements array! handle it =
here=0A=
		var $input =3D $(form.clk), input =3D $input[0];=0A=
		n =3D input.name;=0A=
		if (n && !input.disabled && input.type =3D=3D 'image') {=0A=
			a.push({name: n, value: $input.val()});=0A=
			a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: =
form.clk_y});=0A=
		}=0A=
	}=0A=
	return a;=0A=
};=0A=
=0A=
/**=0A=
 * Serializes form data into a 'submittable' string. This method will =
return a string=0A=
 * in the format: name1=3Dvalue1&amp;name2=3Dvalue2=0A=
 */=0A=
$.fn.formSerialize =3D function(semantic) {=0A=
	//hand off to jQuery.param for proper encoding=0A=
	return $.param(this.formToArray(semantic));=0A=
};=0A=
=0A=
/**=0A=
 * Serializes all field elements in the jQuery object into a query =
string.=0A=
 * This method will return a string in the format: =
name1=3Dvalue1&amp;name2=3Dvalue2=0A=
 */=0A=
$.fn.fieldSerialize =3D function(successful) {=0A=
	var a =3D [];=0A=
	this.each(function() {=0A=
		var n =3D this.name;=0A=
		if (!n) {=0A=
			return;=0A=
		}=0A=
		var v =3D $.fieldValue(this, successful);=0A=
		if (v && v.constructor =3D=3D Array) {=0A=
			for (var i=3D0,max=3Dv.length; i < max; i++) {=0A=
				a.push({name: n, value: v[i]});=0A=
			}=0A=
		}=0A=
		else if (v !=3D=3D null && typeof v !=3D 'undefined') {=0A=
			a.push({name: this.name, value: v});=0A=
		}=0A=
	});=0A=
	//hand off to jQuery.param for proper encoding=0A=
	return $.param(a);=0A=
};=0A=
=0A=
/**=0A=
 * Returns the value(s) of the element in the matched set.  For example, =
consider the following form:=0A=
 *=0A=
 *  <form><fieldset>=0A=
 *	  <input name=3D"A" type=3D"text" />=0A=
 *	  <input name=3D"A" type=3D"text" />=0A=
 *	  <input name=3D"B" type=3D"checkbox" value=3D"B1" />=0A=
 *	  <input name=3D"B" type=3D"checkbox" value=3D"B2"/>=0A=
 *	  <input name=3D"C" type=3D"radio" value=3D"C1" />=0A=
 *	  <input name=3D"C" type=3D"radio" value=3D"C2" />=0A=
 *  </fieldset></form>=0A=
 *=0A=
 *  var v =3D $(':text').fieldValue();=0A=
 *  // if no values are entered into the text inputs=0A=
 *  v =3D=3D ['','']=0A=
 *  // if values entered into the text inputs are 'foo' and 'bar'=0A=
 *  v =3D=3D ['foo','bar']=0A=
 *=0A=
 *  var v =3D $(':checkbox').fieldValue();=0A=
 *  // if neither checkbox is checked=0A=
 *  v =3D=3D=3D undefined=0A=
 *  // if both checkboxes are checked=0A=
 *  v =3D=3D ['B1', 'B2']=0A=
 *=0A=
 *  var v =3D $(':radio').fieldValue();=0A=
 *  // if neither radio is checked=0A=
 *  v =3D=3D=3D undefined=0A=
 *  // if first radio is checked=0A=
 *  v =3D=3D ['C1']=0A=
 *=0A=
 * The successful argument controls whether or not the field element =
must be 'successful'=0A=
 * (per =
http://www.w3.org/TR/html4/interact/forms.html#successful-controls).=0A=
 * The default value of the successful argument is true.  If this value =
is false the value(s)=0A=
 * for each element is returned.=0A=
 *=0A=
 * Note: This method *always* returns an array.  If no valid value can =
be determined the=0A=
 *	   array will be empty, otherwise it will contain one or more values.=0A=
 */=0A=
$.fn.fieldValue =3D function(successful) {=0A=
	for (var val=3D[], i=3D0, max=3Dthis.length; i < max; i++) {=0A=
		var el =3D this[i];=0A=
		var v =3D $.fieldValue(el, successful);=0A=
		if (v =3D=3D=3D null || typeof v =3D=3D 'undefined' || (v.constructor =
=3D=3D Array && !v.length)) {=0A=
			continue;=0A=
		}=0A=
		v.constructor =3D=3D Array ? $.merge(val, v) : val.push(v);=0A=
	}=0A=
	return val;=0A=
};=0A=
=0A=
/**=0A=
 * Returns the value of the field element.=0A=
 */=0A=
$.fieldValue =3D function(el, successful) {=0A=
	var n =3D el.name, t =3D el.type, tag =3D el.tagName.toLowerCase();=0A=
	if (successful =3D=3D=3D undefined) {=0A=
		successful =3D true;=0A=
	}=0A=
=0A=
	if (successful && (!n || el.disabled || t =3D=3D 'reset' || t =3D=3D =
'button' ||=0A=
		(t =3D=3D 'checkbox' || t =3D=3D 'radio') && !el.checked ||=0A=
		(t =3D=3D 'submit' || t =3D=3D 'image') && el.form && el.form.clk !=3D =
el ||=0A=
		tag =3D=3D 'select' && el.selectedIndex =3D=3D -1)) {=0A=
			return null;=0A=
	}=0A=
=0A=
	if (tag =3D=3D 'select') {=0A=
		var index =3D el.selectedIndex;=0A=
		if (index < 0) {=0A=
			return null;=0A=
		}=0A=
		var a =3D [], ops =3D el.options;=0A=
		var one =3D (t =3D=3D 'select-one');=0A=
		var max =3D (one ? index+1 : ops.length);=0A=
		for(var i=3D(one ? index : 0); i < max; i++) {=0A=
			var op =3D ops[i];=0A=
			if (op.selected) {=0A=
				var v =3D op.value;=0A=
				if (!v) { // extra pain for IE...=0A=
					v =3D (op.attributes && op.attributes['value'] && =
!(op.attributes['value'].specified)) ? op.text : op.value;=0A=
				}=0A=
				if (one) {=0A=
					return v;=0A=
				}=0A=
				a.push(v);=0A=
			}=0A=
		}=0A=
		return a;=0A=
	}=0A=
	return $(el).val();=0A=
};=0A=
=0A=
/**=0A=
 * Clears the form data.  Takes the following actions on the form's =
input fields:=0A=
 *  - input text fields will have their 'value' property set to the =
empty string=0A=
 *  - select elements will have their 'selectedIndex' property set to -1=0A=
 *  - checkbox and radio inputs will have their 'checked' property set =
to false=0A=
 *  - inputs of type submit, button, reset, and hidden will *not* be =
effected=0A=
 *  - button elements will *not* be effected=0A=
 */=0A=
$.fn.clearForm =3D function() {=0A=
	return this.each(function() {=0A=
		$('input,select,textarea', this).clearFields();=0A=
	});=0A=
};=0A=
=0A=
/**=0A=
 * Clears the selected form elements.=0A=
 */=0A=
$.fn.clearFields =3D $.fn.clearInputs =3D function() {=0A=
	return this.each(function() {=0A=
		var t =3D this.type, tag =3D this.tagName.toLowerCase();=0A=
		if (t =3D=3D 'text' || t =3D=3D 'password' || tag =3D=3D 'textarea') {=0A=
			this.value =3D '';=0A=
		}=0A=
		else if (t =3D=3D 'checkbox' || t =3D=3D 'radio') {=0A=
			this.checked =3D false;=0A=
		}=0A=
		else if (tag =3D=3D 'select') {=0A=
			this.selectedIndex =3D -1;=0A=
		}=0A=
	});=0A=
};=0A=
=0A=
/**=0A=
 * Resets the form data.  Causes all form elements to be reset to their =
original value.=0A=
 */=0A=
$.fn.resetForm =3D function() {=0A=
	return this.each(function() {=0A=
		// guard against an input with the name of 'reset'=0A=
		// note that IE reports the reset function as an 'object'=0A=
		if (typeof this.reset =3D=3D 'function' || (typeof this.reset =3D=3D =
'object' && !this.reset.nodeType)) {=0A=
			this.reset();=0A=
		}=0A=
	});=0A=
};=0A=
=0A=
/**=0A=
 * Enables or disables any matching elements.=0A=
 */=0A=
$.fn.enable =3D function(b) {=0A=
	if (b =3D=3D=3D undefined) {=0A=
		b =3D true;=0A=
	}=0A=
	return this.each(function() {=0A=
		this.disabled =3D !b;=0A=
	});=0A=
};=0A=
=0A=
/**=0A=
 * Checks/unchecks any matching checkboxes or radio buttons and=0A=
 * selects/deselects and matching option elements.=0A=
 */=0A=
$.fn.selected =3D function(select) {=0A=
	if (select =3D=3D=3D undefined) {=0A=
		select =3D true;=0A=
	}=0A=
	return this.each(function() {=0A=
		var t =3D this.type;=0A=
		if (t =3D=3D 'checkbox' || t =3D=3D 'radio') {=0A=
			this.checked =3D select;=0A=
		}=0A=
		else if (this.tagName.toLowerCase() =3D=3D 'option') {=0A=
			var $sel =3D $(this).parent('select');=0A=
			if (select && $sel[0] && $sel[0].type =3D=3D 'select-one') {=0A=
				// deselect all other options=0A=
				$sel.find('option').selected(false);=0A=
			}=0A=
			this.selected =3D select;=0A=
		}=0A=
	});=0A=
};=0A=
=0A=
// helper fn for console logging=0A=
// set $.fn.ajaxSubmit.debug to true to enable debug logging=0A=
function log() {=0A=
	if ($.fn.ajaxSubmit.debug) {=0A=
		var msg =3D '[jquery.form] ' + Array.prototype.join.call(arguments,'');=0A=
		if (window.console && window.console.log) {=0A=
			window.console.log(msg);=0A=
		}=0A=
		else if (window.opera && window.opera.postError) {=0A=
			window.opera.postError(msg);=0A=
		}=0A=
	}=0A=
};=0A=
=0A=
})(jQuery);=0A=

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Public/javascript/ui.spinner.js

/** =0A=
 * @license jQuery UI Spinner 1.20=0A=
 *=0A=
 * Copyright (c) 2009-2010 Brant Burnett=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 */=0A=
 (function($, undefined) {=0A=
=0A=
var =0A=
	// constants=0A=
	active =3D 'ui-state-active',=0A=
	hover =3D 'ui-state-hover',=0A=
	disabled =3D 'ui-state-disabled',=0A=
	=0A=
	keyCode =3D $.ui.keyCode,=0A=
	up =3D keyCode.UP,=0A=
	down =3D keyCode.DOWN,=0A=
	right =3D keyCode.RIGHT,=0A=
	left =3D keyCode.LEFT,=0A=
	pageUp =3D keyCode.PAGE_UP,=0A=
	pageDown =3D keyCode.PAGE_DOWN,=0A=
	home =3D keyCode.HOME,=0A=
	end =3D keyCode.END,=0A=
	=0A=
	msie =3D $.browser.msie,=0A=
	mouseWheelEventName =3D $.browser.mozilla ? 'DOMMouseScroll' : =
'mousewheel',=0A=
	=0A=
	// namespace for events on input=0A=
	eventNamespace =3D '.uispinner', =0A=
	=0A=
	// only these special keys will be accepted, all others will be ignored =
unless CTRL or ALT are pressed=0A=
	validKeys =3D [up, down, right, left, pageUp, pageDown, home, end, =
keyCode.BACKSPACE, keyCode.DELETE, keyCode.TAB],=0A=
	=0A=
	// stores the currently focused spinner=0A=
	// Note: due to oddities in the focus/blur events, this is part of a =
two-part system for confirming focus=0A=
	// this must set to the control, and the focus variable must be true=0A=
	// this is because hitting up/down arrows with mouse causes focus to =
change, but blur event for previous control doesn't fire=0A=
	focusCtrl;=0A=
	=0A=
$.widget('ui.spinner', {=0A=
	options: {=0A=
		min: null,=0A=
		max: null,=0A=
		allowNull: false,=0A=
		=0A=
		group: '',=0A=
		point: '.',=0A=
		prefix: '',=0A=
		suffix: '',=0A=
		places: null, // null causes it to detect the number of places in step=0A=
		=0A=
		defaultStep: 1, // real value is 'step', and should be passed as such. =
 This value is used to detect if passed value should override HTML5 =
attribute=0A=
		largeStep: 10,=0A=
		mouseWheel: true,=0A=
		increment: 'slow',		=0A=
		className: null,=0A=
		showOn: 'always',=0A=
		width: 16,=0A=
		upIconClass: "ui-icon-triangle-1-n",=0A=
		downIconClass: "ui-icon-triangle-1-s",=0A=
		=0A=
		format: function(num, places) {=0A=
			var options =3D this,=0A=
				regex =3D /(\d+)(\d{3})/,=0A=
				result =3D ((isNaN(num) ? 0 : Math.abs(num)).toFixed(places)) + '';=0A=
				=0A=
			for (result =3D result.replace('.', options.point); =
regex.test(result) && options.group; result=3Dresult.replace(regex, =
'$1'+options.group+'$2')) {};=0A=
			return (num < 0 ? '-' : '') + options.prefix + result + =
options.suffix;=0A=
		},=0A=
		=0A=
		parse: function(val) {=0A=
			var options =3D this;=0A=
			=0A=
			if (options.group =3D=3D '.')=0A=
				val =3D val.replace('.', '');=0A=
			if (options.point !=3D '.')=0A=
				val =3D val.replace(options.point, '.');=0A=
			return parseFloat(val.replace(/[^0-9\-\.]/g, ''));=0A=
		}=0A=
	},=0A=
	=0A=
	// * Widget fields *=0A=
	// curvalue - current value=0A=
	// places - currently effective number of decimal places=0A=
	// oWidth - original input width (used for destroy)=0A=
	// oMargin - original input right margin (used for destroy)=0A=
	// counter - number of spins at the current spin speed=0A=
	// incCounter - index within options.increment of the current spin speed=0A=
	// selfChange - indicates that change event is being fired by the =
widget, so don't reprocess input value=0A=
	// inputMaxLength - initial maxLength value on the input=0A=
	// focused - this spinner currently has the focus=0A=
=0A=
	_create: function() {=0A=
		// shortcuts=0A=
		var self =3D this,=0A=
			input =3D self.element,=0A=
			type =3D input.attr('type');=0A=
			=0A=
		if (!input.is('input') || ((type !=3D 'text') && (type !=3D =
'number'))) {=0A=
			console.error('Invalid target for ui.spinner');=0A=
			return;=0A=
		}=0A=
		=0A=
		self._procOptions(true);=0A=
		self._createButtons(input);=0A=
=0A=
		if (!input.is(':enabled'))=0A=
			self.disable();=0A=
	},=0A=
	=0A=
	_createButtons: function(input) {=0A=
		function getMargin(margin) {=0A=
			// IE8 returns auto if no margin specified=0A=
			return margin =3D=3D 'auto' ? 0 : parseInt(margin);=0A=
		}=0A=
=0A=
		var self =3D this,=0A=
			options =3D self.options,=0A=
			className =3D options.className,=0A=
			buttonWidth =3D options.width,=0A=
			showOn =3D options.showOn,=0A=
			box =3D $.support.boxModel,=0A=
			height =3D input.outerHeight(),=0A=
			rightMargin =3D self.oMargin =3D =
getMargin(input.css('margin-right')), // store original width and right =
margin for later destroy=0A=
			wrapper =3D self.wrapper =3D input.css({ width: (self.oWidth =3D (box =
? input.width() : input.outerWidth())) - buttonWidth, =0A=
												 marginRight: rightMargin + buttonWidth, textAlign: 'right' =
})=0A=
				.after('<span class=3D"ui-spinner ui-widget"></span>').next(),=0A=
			btnContainer =3D self.btnContainer =3D $(=0A=
				'<div class=3D"ui-spinner-buttons">' + =0A=
					'<div class=3D"ui-spinner-up ui-spinner-button ui-state-default =
ui-corner-tr"><span class=3D"ui-icon =
'+options.upIconClass+'">&nbsp;</span></div>' + =0A=
					'<div class=3D"ui-spinner-down ui-spinner-button ui-state-default =
ui-corner-br"><span class=3D"ui-icon =
'+options.downIconClass+'">&nbsp;</span></div>' + =0A=
				'</div>'),=0A=
=0A=
			// object shortcuts=0A=
			upButton, downButton, buttons, icons,=0A=
=0A=
			hoverDelay,=0A=
			hoverDelayCallback,=0A=
			=0A=
			// current state booleans=0A=
			hovered, inKeyDown, inSpecialKey, inMouseDown,=0A=
						=0A=
			// used to reverse left/right key directions=0A=
			rtl =3D input[0].dir =3D=3D 'rtl';=0A=
		=0A=
		// apply className before doing any calculations because it could =
affect them=0A=
		if (className) wrapper.addClass(className);=0A=
		=0A=
		wrapper.append(btnContainer.css({ height: height, left: =
-buttonWidth-rightMargin,=0A=
			// use offset calculation to fix vertical position in Firefox=0A=
			top: (input.offset().top - wrapper.offset().top) + 'px' }));=0A=
		=0A=
		buttons =3D self.buttons =3D btnContainer.find('.ui-spinner-button');=0A=
		buttons.css({ width: buttonWidth - (box ? buttons.outerWidth() - =
buttons.width() : 0), height: height/2 - (box ? buttons.outerHeight() - =
buttons.height() : 0) });=0A=
		upButton =3D buttons[0];=0A=
		downButton =3D buttons[1];=0A=
=0A=
		// fix icon centering=0A=
		icons =3D buttons.find('.ui-icon');=0A=
		icons.css({ marginLeft: (buttons.innerWidth() - icons.width()) / 2, =
marginTop:  (buttons.innerHeight() - icons.height()) / 2 });=0A=
		=0A=
		// set width of btnContainer to be the same as the buttons=0A=
		btnContainer.width(buttons.outerWidth());=0A=
		if (showOn !=3D 'always')=0A=
			btnContainer.css('opacity', 0);=0A=
		=0A=
		/* Event Bindings */=0A=
=0A=
		// bind hover events to show/hide buttons=0A=
		if (showOn =3D=3D 'hover' || showOn =3D=3D 'both')=0A=
			buttons.add(input)=0A=
				.bind('mouseenter' + eventNamespace, function() {=0A=
					setHoverDelay(function() {=0A=
						hovered =3D true;=0A=
						if (!self.focused || (showOn =3D=3D 'hover')) // ignore focus flag =
if show on hover only=0A=
							self.showButtons();=0A=
					});=0A=
				})=0A=
				=0A=
				.bind('mouseleave' + eventNamespace, function hoverOut() {=0A=
					setHoverDelay(function() {=0A=
						hovered =3D false;=0A=
						if (!self.focused || (showOn =3D=3D 'hover')) // ignore focus flag =
if show on hover only=0A=
							self.hideButtons();=0A=
					});=0A=
				});=0A=
=0A=
	=0A=
		buttons.hover(function() {=0A=
					// ensure that both buttons have hover removed, sometimes they get =
left on=0A=
					self.buttons.removeClass(hover);=0A=
					=0A=
					if (!options.disabled)=0A=
						$(this).addClass(hover);=0A=
				}, function() {=0A=
					$(this).removeClass(hover);=0A=
				})=0A=
			.mousedown(mouseDown)=0A=
			.mouseup(mouseUp)=0A=
			.mouseout(mouseUp);=0A=
			=0A=
		if (msie)=0A=
			// fixes dbl click not firing second mouse down in IE=0A=
			buttons.dblclick(function() {=0A=
					if (!options.disabled) {=0A=
						// make sure any changes are posted=0A=
						self._change();=0A=
						self._doSpin((this =3D=3D=3D upButton ? 1 : -1) * options.step);=0A=
					}=0A=
					=0A=
					return false;=0A=
				}) =0A=
				=0A=
				// fixes IE8 dbl click selection highlight=0A=
				.bind('selectstart', function() {return false;});=0A=
				=0A=
		input.bind('keydown' + eventNamespace, function(e) {=0A=
					var dir, large, limit,=0A=
						keyCode =3D e.keyCode; // shortcut for minimization=0A=
					if (e.ctrl || e.alt) return true; // ignore these events=0A=
					=0A=
					if (isSpecialKey(keyCode))=0A=
						inSpecialKey =3D true;=0A=
					=0A=
					if (inKeyDown) return false; // only one direction at a time, and =
suppress invalid keys=0A=
					=0A=
					switch (keyCode) {=0A=
						case up:=0A=
						case pageUp:=0A=
							dir =3D 1;=0A=
							large =3D keyCode =3D=3D pageUp;=0A=
							break;=0A=
							=0A=
						case down:=0A=
						case pageDown:=0A=
							dir =3D -1;=0A=
							large =3D keyCode =3D=3D pageDown;=0A=
							break;=0A=
							=0A=
						case right:=0A=
						case left:=0A=
							dir =3D (keyCode =3D=3D right) ^ rtl ? 1 : -1;=0A=
							break;=0A=
							=0A=
						case home:=0A=
							limit =3D self.options.min;=0A=
							if (limit !=3D null) self._setValue(limit);=0A=
							return false;=0A=
							=0A=
						case end:=0A=
							limit =3D self.options.max;=0A=
							limit =3D self.options.max;=0A=
							if (limit !=3D null) self._setValue(limit);=0A=
							return false;=0A=
					}=0A=
					=0A=
					if (dir) { // only process if dir was set above=0A=
						if (!inKeyDown && !options.disabled) {=0A=
							keyDir =3D dir;=0A=
							=0A=
							$(dir > 0 ? upButton : downButton).addClass(active);=0A=
							inKeyDown =3D true;=0A=
							self._startSpin(dir, large);=0A=
						}=0A=
						=0A=
						return false;=0A=
					}=0A=
				})=0A=
				=0A=
			.bind('keyup' + eventNamespace, function(e) {=0A=
					if (e.ctrl || e.alt) return true; // ignore these events=0A=
					=0A=
					if (isSpecialKey(keyCode))=0A=
						inSpecialKey =3D false;=0A=
					=0A=
					switch (e.keyCode) {=0A=
						case up:=0A=
						case right:=0A=
						case pageUp:=0A=
						case down:=0A=
						case left:=0A=
						case pageDown:=0A=
							buttons.removeClass(active)=0A=
							self._stopSpin();=0A=
							inKeyDown =3D false;=0A=
							return false;=0A=
					}=0A=
				})=0A=
				=0A=
			.bind('keypress' + eventNamespace, function(e) {=0A=
					if (invalidKey(e.keyCode, e.charCode)) return false;=0A=
				})=0A=
				=0A=
			.bind('change' + eventNamespace, function() { self._change(); })=0A=
			=0A=
			.bind('focus' + eventNamespace, function() {=0A=
					function selectAll() {=0A=
						self.element.select();=0A=
					}=0A=
=0A=
					msie ? selectAll() : setTimeout(selectAll, 0); // add delay for =
Chrome, but breaks IE8=0A=
					self.focused =3D true;=0A=
					focusCtrl =3D self;=0A=
					if (!hovered && (showOn =3D=3D 'focus' || showOn =3D=3D 'both')) // =
hovered will only be set if hover affects show=0A=
						self.showButtons();=0A=
				})=0A=
				=0A=
			.bind('blur' + eventNamespace, function() {=0A=
					self.focused =3D false;=0A=
					if (!hovered && (showOn =3D=3D 'focus' || showOn =3D=3D 'both')) // =
hovered will only be set if hover affects show=0A=
						self.hideButtons();=0A=
				});=0A=
				=0A=
		function isSpecialKey(keyCode) {=0A=
			for (var i=3D0; i<validKeys.length; i++) // predefined list of =
special keys=0A=
				if (validKeys[i] =3D=3D keyCode) return true;=0A=
				=0A=
			return false;=0A=
		}=0A=
			=0A=
		function invalidKey(keyCode, charCode) {=0A=
			if (inSpecialKey) return false;				=0A=
			=0A=
			var ch =3D String.fromCharCode(charCode || keyCode),=0A=
				options =3D self.options;=0A=
				=0A=
			if ((ch >=3D '0') && (ch <=3D '9') || (ch =3D=3D '-')) return false;=0A=
			if (((self.places > 0) && (ch =3D=3D options.point))=0A=
				|| (ch =3D=3D options.group)) return false;=0A=
						=0A=
			return true;=0A=
		}=0A=
		=0A=
		// used to delay start of hover show/hide by 100 milliseconds=0A=
		function setHoverDelay(callback) {=0A=
			if (hoverDelay) {=0A=
				// don't do anything if trying to set the same callback again=0A=
				if (callback =3D=3D=3D hoverDelayCallback) return;=0A=
				=0A=
				clearTimeout(hoverDelay);=0A=
			}=0A=
			=0A=
			hoverDelayCallback =3D callback;=0A=
			hoverDelay =3D setTimeout(execute, 100);=0A=
			=0A=
			function execute() {=0A=
				hoverDelay =3D 0;=0A=
				callback();=0A=
			}=0A=
		}=0A=
			=0A=
		function mouseDown() {=0A=
			if (!options.disabled) {=0A=
				var input =3D self.element[0],=0A=
					dir =3D (this =3D=3D=3D upButton ? 1 : -1);=0A=
					=0A=
				input.focus();=0A=
				input.select();=0A=
				$(this).addClass(active);=0A=
				=0A=
				inMouseDown =3D true;=0A=
				self._startSpin(dir);=0A=
			}=0A=
=0A=
			return false;=0A=
		}=0A=
		=0A=
		function mouseUp() {=0A=
			if (inMouseDown) {=0A=
				$(this).removeClass(active);=0A=
				self._stopSpin();=0A=
				inMouseDown =3D false;=0A=
			}=0A=
			return false;=0A=
		}=0A=
	},=0A=
	=0A=
	_procOptions: function(init) {=0A=
		var self =3D this,=0A=
			input =3D self.element,=0A=
			options =3D self.options,=0A=
			min =3D options.min,=0A=
			max =3D options.max,=0A=
			step =3D options.step,=0A=
			places =3D options.places,=0A=
			maxlength =3D -1, temp;=0A=
			=0A=
		// setup increment based on speed string=0A=
		if (options.increment =3D=3D 'slow')=0A=
			options.increment =3D [{count: 1, mult: 1, delay: 250},=0A=
								 {count: 3, mult: 1, delay: 100},=0A=
								 {count: 0, mult: 1, delay: 50}];=0A=
		else if (options.increment =3D=3D 'fast')=0A=
			options.increment =3D [{count: 1, mult: 1, delay: 250},=0A=
								 {count: 19, mult: 1, delay: 100},=0A=
								 {count: 80, mult: 1, delay: 20},=0A=
								 {count: 100, mult: 10, delay: 20},=0A=
								 {count: 0, mult: 100, delay: 20}];=0A=
=0A=
		if ((min =3D=3D null) && ((temp =3D input.attr('min')) !=3D null))=0A=
			min =3D parseFloat(temp);=0A=
		=0A=
		if ((max =3D=3D null) && ((temp =3D input.attr('max')) !=3D null))=0A=
			max =3D parseFloat(temp);=0A=
		=0A=
		if (!step && ((temp =3D input.attr('step')) !=3D null))=0A=
			if (temp !=3D 'any') {=0A=
				step =3D parseFloat(temp);=0A=
				options.largeStep *=3D step;=0A=
			}=0A=
		options.step =3D step =3D step || options.defaultStep;=0A=
=0A=
		// Process step for decimal places if none are specified=0A=
		if ((places =3D=3D null) && ((temp =3D step + '').indexOf('.') !=3D =
-1))=0A=
			places =3D temp.length - temp.indexOf('.') - 1;=0A=
		self.places =3D places;=0A=
		=0A=
		if ((max !=3D null) && (min !=3D null)) {=0A=
			// ensure that min is less than or equal to max=0A=
			if (min > max) min =3D max;=0A=
			=0A=
			// set maxlength based on min/max=0A=
			maxlength =3D Math.max(Math.max(maxlength, options.format(max, =
places, input).length), options.format(min, places, input).length);=0A=
		}=0A=
		=0A=
		// only lookup input maxLength on init=0A=
		if (init) self.inputMaxLength =3D input[0].maxLength;=0A=
		temp =3D self.inputMaxLength;=0A=
			=0A=
		if (temp > 0) {=0A=
			maxlength =3D maxlength > 0 ? Math.min(temp, maxlength) : temp;=0A=
			temp =3D Math.pow(10, maxlength) - 1;=0A=
			if ((max =3D=3D null) || (max > temp))=0A=
				max =3D temp;=0A=
			temp =3D -(temp + 1) / 10 + 1;=0A=
			if ((min =3D=3D null) || (min < temp))=0A=
				min =3D temp;=0A=
		}=0A=
		=0A=
		if (maxlength > 0)=0A=
			input.attr('maxlength', maxlength);=0A=
					=0A=
		options.min =3D min;=0A=
		options.max =3D max;=0A=
		=0A=
		// ensures that current value meets constraints=0A=
		self._change();=0A=
		=0A=
		input.unbind(mouseWheelEventName + eventNamespace);=0A=
		if (options.mouseWheel)=0A=
			input.bind(mouseWheelEventName + eventNamespace, self._mouseWheel);=0A=
	},=0A=
		=0A=
	_mouseWheel: function(e) {=0A=
		var self =3D $.data(this, 'spinner');=0A=
		if (!self.options.disabled && self.focused && (focusCtrl =3D=3D=3D =
self)) {=0A=
			// make sure changes are posted=0A=
			self._change();=0A=
			self._doSpin(((e.wheelDelta || -e.detail) > 0 ? 1 : -1) * =
self.options.step);=0A=
			return false;=0A=
		}=0A=
	},=0A=
	=0A=
	// sets an interval to call the _spin function=0A=
	_setTimer: function(delay, dir, large) {=0A=
		var self =3D this;=0A=
		self._stopSpin();=0A=
		self.timer =3D setInterval(fire, delay);=0A=
		=0A=
		function fire() {=0A=
			self._spin(dir, large);=0A=
		}=0A=
	},=0A=
	=0A=
	// stops the spin timer=0A=
	_stopSpin: function() {=0A=
		if (this.timer) {=0A=
			clearInterval(this.timer);=0A=
			this.timer =3D 0;=0A=
		}=0A=
	},=0A=
	=0A=
	// performs first step, and starts the spin timer if increment is set=0A=
	_startSpin: function(dir, large) {=0A=
		// shortcuts=0A=
		var self =3D this,=0A=
			options =3D self.options,=0A=
			increment =3D options.increment;=0A=
			=0A=
		// make sure any changes are posted=0A=
		self._change();=0A=
		self._doSpin(dir * (large ? self.options.largeStep : =
self.options.step));=0A=
		=0A=
		if (increment && increment.length > 0) {		=0A=
			self.counter =3D 0;=0A=
			self.incCounter =3D 0;=0A=
			self._setTimer(increment[0].delay, dir, large);=0A=
		}=0A=
	},=0A=
	=0A=
	// called by timer for each step in the spin=0A=
	_spin: function(dir, large) {=0A=
		// shortcuts=0A=
		var self =3D this,=0A=
			increment =3D self.options.increment,=0A=
			curIncrement =3D increment[self.incCounter];=0A=
		=0A=
		self._doSpin(dir * curIncrement.mult * (large ? self.options.largeStep =
: self.options.step));=0A=
		self.counter++;=0A=
=0A=
		if ((self.counter > curIncrement.count) && (self.incCounter < =
increment.length-1)) {=0A=
			self.counter =3D 0;=0A=
			curIncrement =3D increment[++self.incCounter];=0A=
			self._setTimer(curIncrement.delay, dir, large);=0A=
		}=0A=
	},=0A=
	=0A=
	// actually spins the timer by a step=0A=
	_doSpin: function(step) {=0A=
		// shortcut=0A=
		var self =3D this,=0A=
			value =3D self.curvalue;=0A=
			=0A=
		if (value =3D=3D null)=0A=
			value =3D (step > 0 ? self.options.min : self.options.max) || 0;=0A=
		=0A=
		self._setValue(value + step);=0A=
	},=0A=
	=0A=
	// Parse the value currently in the field=0A=
	_parseValue: function() {=0A=
		var value =3D this.element.val();=0A=
		return value ? this.options.parse(value, this.element) : null;=0A=
	},=0A=
	=0A=
	_validate: function(value) {=0A=
		var options =3D this.options,=0A=
			min =3D options.min,=0A=
			max =3D options.max;=0A=
=0A=
		if ((value =3D=3D null) && !options.allowNull)=0A=
			value =3D this.curvalue !=3D null ? this.curvalue : min || max || 0; =
// must confirm not null in case just initializing and had blank value=0A=
=0A=
		if ((max !=3D null) && (value > max))=0A=
			return max;=0A=
		else if ((min !=3D null) && (value < min))=0A=
			return min;=0A=
		else=0A=
			return value;=0A=
	},=0A=
	=0A=
	_change: function() {=0A=
		var self =3D this, // shortcut=0A=
			value =3D self._parseValue(),=0A=
			min =3D self.options.min,=0A=
			max =3D self.options.max;=0A=
			=0A=
		// don't reprocess if change was self triggered=0A=
		if (!self.selfChange) {=0A=
			if (isNaN(value))=0A=
				value =3D self.curvalue;=0A=
=0A=
			self._setValue(value, true);=0A=
		}=0A=
	},=0A=
	=0A=
	// overrides _setData to force option parsing=0A=
	_setOption: function(key, value) {=0A=
		$.Widget.prototype._setOption.call(this, key, value);=0A=
		this._procOptions();=0A=
	},=0A=
	=0A=
	increment: function() {=0A=
		this._doSpin(this.options.step);=0A=
	},=0A=
	=0A=
	decrement: function() {=0A=
		this._doSpin(-this.options.step);=0A=
	},=0A=
	=0A=
	showButtons: function(immediate) {=0A=
		var btnContainer =3D this.btnContainer.stop();=0A=
		if (immediate)=0A=
			btnContainer.css('opacity', 1);=0A=
		else=0A=
			btnContainer.fadeTo('fast', 1);=0A=
	},=0A=
	=0A=
	hideButtons: function(immediate) {=0A=
		var btnContainer =3D this.btnContainer.stop();=0A=
		if (immediate)=0A=
			btnContainer.css('opacity', 0);=0A=
		else=0A=
			btnContainer.fadeTo('fast', 0);=0A=
		this.buttons.removeClass(hover);=0A=
	},=0A=
	=0A=
	// Set the value directly=0A=
	_setValue: function(value, suppressFireEvent) {=0A=
		var self =3D this;=0A=
		=0A=
		self.curvalue =3D value =3D self._validate(value);=0A=
		self.element.val(value !=3D null ? =0A=
			self.options.format(value, self.places, self.element) :=0A=
			'');=0A=
		=0A=
		if (!suppressFireEvent) {=0A=
			self.selfChange =3D true;=0A=
			self.element.change();=0A=
			self.selfChange =3D false;=0A=
		}=0A=
	},=0A=
=0A=
	// Set or retrieve the value=0A=
	value: function(newValue) {=0A=
		if (arguments.length) {=0A=
			this._setValue(newValue);=0A=
			=0A=
			// maintains chaining=0A=
			return this.element;=0A=
		}=0A=
=0A=
		return this.curvalue;=0A=
	},=0A=
=0A=
	enable: function() {=0A=
		this.buttons.removeClass(disabled);=0A=
		this.element[0].disabled =3D false;=0A=
		$.Widget.prototype.enable.call(this);=0A=
	},=0A=
	=0A=
	disable: function() {=0A=
		this.buttons.addClass(disabled)=0A=
			// in case hover class got left on=0A=
			.removeClass(hover);=0A=
			=0A=
		this.element[0].disabled =3D true;=0A=
		$.Widget.prototype.disable.call(this);=0A=
	},=0A=
	=0A=
	destroy: function(target) {=0A=
		this.wrapper.remove();=0A=
		this.element.unbind(eventNamespace).css({ width: this.oWidth, =
marginRight: this.oMargin });=0A=
		=0A=
		$.Widget.prototype.destroy.call(this);=0A=
	}	=0A=
});=0A=
=0A=
})( jQuery );
------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Public/javascript/jquery.jgrowl.js

/**=0A=
 * jGrowl 1.2.4=0A=
 *=0A=
 * Dual licensed under the MIT =
(http://www.opensource.org/licenses/mit-license.php)=0A=
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.=0A=
 *=0A=
 * Written by Stan Lemon <stosh1985@gmail.com>=0A=
 * Last updated: 2009.12.13=0A=
 *=0A=
 * jGrowl is a jQuery plugin implementing unobtrusive userland =
notifications.  These =0A=
 * notifications function similarly to the Growl Framework available for=0A=
 * Mac OS X (http://growl.info).=0A=
 *=0A=
 * To Do:=0A=
 * - Move library settings to containers and allow them to be changed =
per container=0A=
 *=0A=
 * Changes in 1.2.4=0A=
 * - Fixed IE bug with the close-all button=0A=
 * - Fixed IE bug with the filter CSS attribute (special thanks to =
gotwic)=0A=
 * - Update IE opacity CSS=0A=
 * - Changed font sizes to use "em", and only set the base style=0A=
 *=0A=
 * Changes in 1.2.3=0A=
 * - The callbacks no longer use the container as context, instead they =
use the actual notification=0A=
 * - The callbacks now receive the container as a parameter after the =
options parameter=0A=
 * - beforeOpen and beforeClose now check the return value, if it's =
false - the notification does=0A=
 *   not continue.  The open callback will also halt execution if it =
returns false.=0A=
 * - Fixed bug where containers would get confused=0A=
 * - Expanded the pause functionality to pause an entire container.=0A=
 *=0A=
 * Changes in 1.2.2=0A=
 * - Notification can now be theme rolled for jQuery UI, special thanks =
to Jeff Chan!=0A=
 *=0A=
 * Changes in 1.2.1=0A=
 * - Fixed instance where the interval would fire the close method =
multiple times.=0A=
 * - Added CSS to hide from print media=0A=
 * - Fixed issue with closer button when div { position: relative } is =
set=0A=
 * - Fixed leaking issue with multiple containers.  Special thanks to =
Matthew Hanlon!=0A=
 *=0A=
 * Changes in 1.2.0=0A=
 * - Added message pooling to limit the number of messages appearing at =
a given time.=0A=
 * - Closing a notification is now bound to the notification object and =
triggered by the close button.=0A=
 *=0A=
 * Changes in 1.1.2=0A=
 * - Added iPhone styled example=0A=
 * - Fixed possible IE7 bug when determining if the ie6 class shoudl be =
applied.=0A=
 * - Added template for the close button, so that it's content could be =
customized.=0A=
 *=0A=
 * Changes in 1.1.1=0A=
 * - Fixed CSS styling bug for ie6 caused by a mispelling=0A=
 * - Changes height restriction on default notifications to min-height=0A=
 * - Added skinned examples using a variety of images=0A=
 * - Added the ability to customize the content of the [close all] box=0A=
 * - Added jTweet, an example of using jGrowl + Twitter=0A=
 *=0A=
 * Changes in 1.1.0=0A=
 * - Multiple container and instances.=0A=
 * - Standard $.jGrowl() now wraps $.fn.jGrowl() by first establishing a =
generic jGrowl container.=0A=
 * - Instance methods of a jGrowl container can be called by =
$.fn.jGrowl(methodName)=0A=
 * - Added glue preferenced, which allows notifications to be inserted =
before or after nodes in the container=0A=
 * - Added new log callback which is called before anything is done for =
the notification=0A=
 * - Corner's attribute are now applied on an individual notification =
basis.=0A=
 *=0A=
 * Changes in 1.0.4=0A=
 * - Various CSS fixes so that jGrowl renders correctly in IE6.=0A=
 *=0A=
 * Changes in 1.0.3=0A=
 * - Fixed bug with options persisting across notifications=0A=
 * - Fixed theme application bug=0A=
 * - Simplified some selectors and manipulations.=0A=
 * - Added beforeOpen and beforeClose callbacks=0A=
 * - Reorganized some lines of code to be more readable=0A=
 * - Removed unnecessary this.defaults context=0A=
 * - If corners plugin is present, it's now customizable.=0A=
 * - Customizable open animation.=0A=
 * - Customizable close animation.=0A=
 * - Customizable animation easing.=0A=
 * - Added customizable positioning (top-left, top-right, bottom-left, =
bottom-right, center)=0A=
 *=0A=
 * Changes in 1.0.2=0A=
 * - All CSS styling is now external.=0A=
 * - Added a theme parameter which specifies a secondary class for =
styling, such=0A=
 *   that notifications can be customized in appearance on a per message =
basis.=0A=
 * - Notification life span is now customizable on a per message basis.=0A=
 * - Added the ability to disable the global closer, enabled by default.=0A=
 * - Added callbacks for when a notification is opened or closed.=0A=
 * - Added callback for the global closer.=0A=
 * - Customizable animation speed.=0A=
 * - jGrowl now set itself up and tears itself down.=0A=
 *=0A=
 * Changes in 1.0.1:=0A=
 * - Removed dependency on metadata plugin in favor of .data()=0A=
 * - Namespaced all events=0A=
 */=0A=
(function($) {=0A=
=0A=
	/** jGrowl Wrapper - Establish a base jGrowl Container for =
compatibility with older releases. **/=0A=
	$.jGrowl =3D function( m , o ) {=0A=
		// To maintain compatibility with older version that only supported =
one instance we'll create the base container.=0A=
		if ( $('#jGrowl').size() =3D=3D 0 ) =0A=
			$('<div =
id=3D"jGrowl"></div>').addClass($.jGrowl.defaults.position).appendTo('bod=
y');=0A=
=0A=
		// Create a notification on the container.=0A=
		$('#jGrowl').jGrowl(m,o);=0A=
	};=0A=
=0A=
=0A=
	/** Raise jGrowl Notification on a jGrowl Container **/=0A=
	$.fn.jGrowl =3D function( m , o ) {=0A=
		if ( $.isFunction(this.each) ) {=0A=
			var args =3D arguments;=0A=
=0A=
			return this.each(function() {=0A=
				var self =3D this;=0A=
=0A=
				/** Create a jGrowl Instance on the Container if it does not exist =
**/=0A=
				if ( $(this).data('jGrowl.instance') =3D=3D undefined ) {=0A=
					$(this).data('jGrowl.instance', $.extend( new $.fn.jGrowl(), { =
notifications: [], element: null, interval: null } ));=0A=
					$(this).data('jGrowl.instance').startup( this );=0A=
				}=0A=
=0A=
				/** Optionally call jGrowl instance methods, or just raise a normal =
notification **/=0A=
				if ( $.isFunction($(this).data('jGrowl.instance')[m]) ) {=0A=
					$(this).data('jGrowl.instance')[m].apply( =
$(this).data('jGrowl.instance') , $.makeArray(args).slice(1) );=0A=
				} else {=0A=
					$(this).data('jGrowl.instance').create( m , o );=0A=
				}=0A=
			});=0A=
		};=0A=
	};=0A=
=0A=
	$.extend( $.fn.jGrowl.prototype , {=0A=
=0A=
		/** Default JGrowl Settings **/=0A=
		defaults: {=0A=
			pool: 			0,=0A=
			header: 		'',=0A=
			group: 			'',=0A=
			sticky: 		false,=0A=
			position: 		'top-right', // Is this still needed?=0A=
			glue: 			'after',=0A=
			theme: 			'default',=0A=
			corners: 		'10px',=0A=
			check: 			250,=0A=
			life: 			3000,=0A=
			speed: 			'normal',=0A=
			easing: 		'swing',=0A=
			closer: 		true,=0A=
			closeTemplate: '&times;',=0A=
			closerTemplate: '<div>[ close all ]</div>',=0A=
			log: 			function(e,m,o) {},=0A=
			beforeOpen: 	function(e,m,o) {},=0A=
			open: 			function(e,m,o) {},=0A=
			beforeClose: 	function(e,m,o) {},=0A=
			close: 			function(e,m,o) {},=0A=
			animateOpen: 	{=0A=
				opacity: 	'show'=0A=
			},=0A=
			animateClose: 	{=0A=
				opacity: 	'hide'=0A=
			}=0A=
		},=0A=
		=0A=
		notifications: [],=0A=
		=0A=
		/** jGrowl Container Node **/=0A=
		element: 	null,=0A=
	=0A=
		/** Interval Function **/=0A=
		interval:   null,=0A=
		=0A=
		/** Create a Notification **/=0A=
		create: 	function( message , o ) {=0A=
			var o =3D $.extend({}, this.defaults, o);=0A=
=0A=
			this.notifications.push({ message: message , options: o });=0A=
			=0A=
			o.log.apply( this.element , [this.element,message,o] );=0A=
		},=0A=
		=0A=
		render: 		function( notification ) {=0A=
			var self =3D this;=0A=
			var message =3D notification.message;=0A=
			var o =3D notification.options;=0A=
=0A=
			var notification =3D $(=0A=
				'<div class=3D"jGrowl-notification ui-state-highlight ui-corner-all' =
+ =0A=
				((o.group !=3D undefined && o.group !=3D '') ? ' ' + o.group : '') + =
'">' +=0A=
				'<div class=3D"close">' + o.closeTemplate + '</div>' +=0A=
				'<div class=3D"header">' + o.header + '</div>' +=0A=
				'<div class=3D"message">' + message + '</div></div>'=0A=
			).data("jGrowl", =
o).addClass(o.theme).children('div.close').bind("click.jGrowl", =
function() {=0A=
				$(this).parent().trigger('jGrowl.close');=0A=
			}).parent();=0A=
=0A=
=0A=
			/** Notification Actions **/=0A=
			$(notification).bind("mouseover.jGrowl", function() {=0A=
				$('div.jGrowl-notification', self.element).data("jGrowl.pause", =
true);=0A=
			}).bind("mouseout.jGrowl", function() {=0A=
				$('div.jGrowl-notification', self.element).data("jGrowl.pause", =
false);=0A=
			}).bind('jGrowl.beforeOpen', function() {=0A=
				if ( o.beforeOpen.apply( notification , =
[notification,message,o,self.element] ) !=3D false ) {=0A=
					$(this).trigger('jGrowl.open');=0A=
				}=0A=
			}).bind('jGrowl.open', function() {=0A=
				if ( o.open.apply( notification , =
[notification,message,o,self.element] ) !=3D false ) {=0A=
					if ( o.glue =3D=3D 'after' ) {=0A=
						$('div.jGrowl-notification:last', =
self.element).after(notification);=0A=
					} else {=0A=
						$('div.jGrowl-notification:first', =
self.element).before(notification);=0A=
					}=0A=
					=0A=
					$(this).animate(o.animateOpen, o.speed, o.easing, function() {=0A=
						// Fixes some anti-aliasing issues with IE filters.=0A=
						if ($.browser.msie && (parseInt($(this).css('opacity'), 10) =
=3D=3D=3D 1 || parseInt($(this).css('opacity'), 10) =3D=3D=3D 0))=0A=
							this.style.removeAttribute('filter');=0A=
=0A=
						$(this).data("jGrowl").created =3D new Date();=0A=
					});=0A=
				}=0A=
			}).bind('jGrowl.beforeClose', function() {=0A=
				if ( o.beforeClose.apply( notification , =
[notification,message,o,self.element] ) !=3D false )=0A=
					$(this).trigger('jGrowl.close');=0A=
			}).bind('jGrowl.close', function() {=0A=
				// Pause the notification, lest during the course of animation =
another close event gets called.=0A=
				$(this).data('jGrowl.pause', true);=0A=
				$(this).animate(o.animateClose, o.speed, o.easing, function() {=0A=
					$(this).remove();=0A=
					var close =3D o.close.apply( notification , =
[notification,message,o,self.element] );=0A=
=0A=
					if ( $.isFunction(close) )=0A=
						close.apply( notification , [notification,message,o,self.element] =
);=0A=
				});=0A=
			}).trigger('jGrowl.beforeOpen');=0A=
		=0A=
			/** Optional Corners Plugin **/=0A=
			if ( $.fn.corner !=3D undefined ) $(notification).corner( o.corners );=0A=
=0A=
			/** Add a Global Closer if more than one notification exists **/=0A=
			if ( $('div.jGrowl-notification:parent', self.element).size() > 1 && =0A=
				 $('div.jGrowl-closer', self.element).size() =3D=3D 0 && =
this.defaults.closer !=3D false ) {=0A=
				$(this.defaults.closerTemplate).addClass('jGrowl-closer =
ui-state-highlight ui-corner-all').addClass(this.defaults.theme)=0A=
					.appendTo(self.element).animate(this.defaults.animateOpen, =
this.defaults.speed, this.defaults.easing)=0A=
					.bind("click.jGrowl", function() {=0A=
						$(this).siblings().children('div.close').trigger("click.jGrowl");=0A=
=0A=
						if ( $.isFunction( self.defaults.closer ) ) {=0A=
							self.defaults.closer.apply( $(this).parent()[0] , =
[$(this).parent()[0]] );=0A=
						}=0A=
					});=0A=
			};=0A=
		},=0A=
=0A=
		/** Update the jGrowl Container, removing old jGrowl notifications **/=0A=
		update:	 function() {=0A=
			$(this.element).find('div.jGrowl-notification:parent').each( =
function() {=0A=
				if ( $(this).data("jGrowl") !=3D undefined && =
$(this).data("jGrowl").created !=3D undefined && =0A=
					 ($(this).data("jGrowl").created.getTime() + =
$(this).data("jGrowl").life)  < (new Date()).getTime() && =0A=
					 $(this).data("jGrowl").sticky !=3D true && =0A=
					 ($(this).data("jGrowl.pause") =3D=3D undefined || =
$(this).data("jGrowl.pause") !=3D true) ) {=0A=
=0A=
					// Pause the notification, lest during the course of animation =
another close event gets called.=0A=
					$(this).trigger('jGrowl.beforeClose');=0A=
				}=0A=
			});=0A=
=0A=
			if ( this.notifications.length > 0 && =0A=
				 (this.defaults.pool =3D=3D 0 || =
$(this.element).find('div.jGrowl-notification:parent').size() < =
this.defaults.pool) )=0A=
				this.render( this.notifications.shift() );=0A=
=0A=
			if ( $(this.element).find('div.jGrowl-notification:parent').size() < =
2 ) {=0A=
				=
$(this.element).find('div.jGrowl-closer').animate(this.defaults.animateCl=
ose, this.defaults.speed, this.defaults.easing, function() {=0A=
					$(this).remove();=0A=
				});=0A=
			}=0A=
		},=0A=
=0A=
		/** Setup the jGrowl Notification Container **/=0A=
		startup:	function(e) {=0A=
			this.element =3D $(e).addClass('jGrowl').append('<div =
class=3D"jGrowl-notification"></div>');=0A=
			this.interval =3D setInterval( function() { =0A=
				$(e).data('jGrowl.instance').update(); =0A=
			}, this.defaults.check);=0A=
			=0A=
			if ($.browser.msie && parseInt($.browser.version) < 7 && =
!window["XMLHttpRequest"]) {=0A=
				$(this.element).addClass('ie6');=0A=
			}=0A=
		},=0A=
=0A=
		/** Shutdown jGrowl, removing it and clearing the interval **/=0A=
		shutdown:   function() {=0A=
			=
$(this.element).removeClass('jGrowl').find('div.jGrowl-notification').rem=
ove();=0A=
			clearInterval( this.interval );=0A=
		},=0A=
		=0A=
		close: 	function() {=0A=
			$(this.element).find('div.jGrowl-notification').each(function(){=0A=
				$(this).trigger('jGrowl.beforeClose');=0A=
			});=0A=
		}=0A=
	});=0A=
	=0A=
	/** Reference the Defaults Object for compatibility with older versions =
of jGrowl **/=0A=
	$.jGrowl.defaults =3D $.fn.jGrowl.prototype.defaults;=0A=
=0A=
})(jQuery);
------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Public/javascript/ckeditor/ckeditor.js

=EF=BB=BF/*
Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights =
reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/

(function(){if(!window.CKEDITOR)window.CKEDITOR=3D(function(){var =
a=3D{timestamp:'A8LE4JO',version:'3.4.1',revision:'5892',_:{},status:'unl=
oaded',basePath:(function(){var =
d=3Dwindow.CKEDITOR_BASEPATH||'';if(!d){var =
e=3Ddocument.getElementsByTagName('script');for(var =
f=3D0;f<e.length;f++){var =
g=3De[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*=
)?$/i);if(g){d=3Dg[1];break;}}}if(d.indexOf('://')=3D=3D-1)if(d.indexOf('=
/')=3D=3D=3D0)d=3Dlocation.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else =
d=3Dlocation.href.match(/^[^\?]*\/(?:)/)[0]+d;if(!d)throw 'The CKEditor =
installation path could not be automatically detected. Please set the =
global variable "CKEDITOR_BASEPATH" before creating editor =
instances.';return =
d;})(),getUrl:function(d){if(d.indexOf('://')=3D=3D-1&&d.indexOf('/')!=3D=
=3D0)d=3Dthis.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!=3D'/'&&=
!/[&?]t=3D/.test(d))d+=3D(d.indexOf('?')>=3D0?'&':'?')+'t=3D'+this.timest=
amp;return d;}},b=3Dwindow.CKEDITOR_GETURL;if(b){var =
c=3Da.getUrl;a.getUrl=3Dfunction(d){return =
b.call(a,d)||c.call(a,d);};}return a;})();var =
a=3DCKEDITOR;if(!a.event){a.event=3Dfunction(){};a.event.implementOn=3Dfu=
nction(b,c){var d=3Da.event.prototype;for(var e in =
d){if(b[e]=3D=3Dundefined)b[e]=3Dd[e];}};a.event.prototype=3D(function(){=
var b=3Dfunction(d){var =
e=3Dd.getPrivate&&d.getPrivate()||d._||(d._=3D{});return =
e.events||(e.events=3D{});},c=3Dfunction(d){this.name=3Dd;this.listeners=3D=
[];};c.prototype=3D{getListenerIndex:function(d){for(var =
e=3D0,f=3Dthis.listeners;e<f.length;e++){if(f[e].fn=3D=3Dd)return =
e;}return-1;}};return{on:function(d,e,f,g,h){var =
i=3Db(this),j=3Di[d]||(i[d]=3Dnew c(d));if(j.getListenerIndex(e)<0){var =
k=3Dj.listeners;if(!f)f=3Dthis;if(isNaN(h))h=3D10;var =
l=3Dthis,m=3Dfunction(o,p,q,r){var =
s=3D{name:d,sender:this,editor:o,data:p,listenerData:g,stop:q,cancel:r,re=
moveListener:function(){l.removeListener(d,e);}};e.call(f,s);return =
s.data;};m.fn=3De;m.priority=3Dh;for(var =
n=3Dk.length-1;n>=3D0;n--){if(k[n].priority<=3Dh){k.splice(n+1,0,m);retur=
n;}}k.unshift(m);}},fire:(function(){var =
d=3Dfalse,e=3Dfunction(){d=3Dtrue;},f=3Dfalse,g=3Dfunction(){f=3Dtrue;};r=
eturn function(h,i,j){var =
k=3Db(this)[h],l=3Dd,m=3Df;d=3Df=3Dfalse;if(k){var =
n=3Dk.listeners;if(n.length){n=3Dn.slice(0);for(var =
o=3D0;o<n.length;o++){var p=3Dn[o].call(this,j,i,e,g);if(typeof =
p!=3D'undefined')i=3Dp;if(d||f)break;}}}var q=3Df||(typeof =
i=3D=3D'undefined'?false:i);d=3Dl;f=3Dm;return =
q;};})(),fireOnce:function(d,e,f){var g=3Dthis.fire(d,e,f);delete =
b(this)[d];return g;},removeListener:function(d,e){var =
f=3Db(this)[d];if(f){var =
g=3Df.getListenerIndex(e);if(g>=3D0)f.listeners.splice(g,1);}},hasListene=
rs:function(d){var e=3Db(this)[d];
return =
e&&e.listeners.length>0;}};})();}if(!a.editor){a.ELEMENT_MODE_NONE=3D0;a.=
ELEMENT_MODE_REPLACE=3D1;a.ELEMENT_MODE_APPENDTO=3D2;a.editor=3Dfunction(=
b,c,d,e){var =
f=3Dthis;f._=3D{instanceConfig:b,element:c,data:e};f.elementMode=3Dd||0;a=
.event.call(f);f._init();};a.editor.replace=3Dfunction(b,c){var =
d=3Db;if(typeof d!=3D'object'){d=3Ddocument.getElementById(b);if(!d){var =
e=3D0,f=3Ddocument.getElementsByName(b);while((d=3Df[e++])&&d.tagName.toL=
owerCase()!=3D'textarea'){}}if(!d)throw '[CKEDITOR.editor.replace] The =
element with id or name "'+b+'" was not =
found.';}d.style.visibility=3D'hidden';return new =
a.editor(c,d,1);};a.editor.appendTo=3Dfunction(b,c,d){var =
e=3Db;if(typeof =
e!=3D'object'){e=3Ddocument.getElementById(b);if(!e)throw =
'[CKEDITOR.editor.appendTo] The element with id "'+b+'" was not =
found.';}return new =
a.editor(c,e,2,d);};a.editor.prototype=3D{_init:function(){var =
b=3Da.editor._pending||(a.editor._pending=3D[]);b.push(this);},fire:funct=
ion(b,c){return =
a.event.prototype.fire.call(this,b,c,this);},fireOnce:function(b,c){retur=
n =
a.event.prototype.fireOnce.call(this,b,c,this);}};a.event.implementOn(a.e=
ditor.prototype,true);}if(!a.env)a.env=3D(function(){var =
b=3Dnavigator.userAgent.toLowerCase(),c=3Dwindow.opera,d=3D{ie:/*@cc_on!@=
*/false,opera:!!c&&c.version,webkit:b.indexOf(' =
applewebkit/')>-1,air:b.indexOf(' =
adobeair/')>-1,mac:b.indexOf('macintosh')>-1,quirks:document.compatMode=3D=
=3D'BackCompat',mobile:b.indexOf('mobile')>-1,isCustomDomain:function(){i=
f(!this.ie)return false;var =
g=3Ddocument.domain,h=3Dwindow.location.hostname;return =
g!=3Dh&&g!=3D'['+h+']';}};d.gecko=3Dnavigator.product=3D=3D'Gecko'&&!d.we=
bkit&&!d.opera;var e=3D0;if(d.ie){e=3DparseFloat(b.match(/msie =
(\d+)/)[1]);d.ie8=3D!!document.documentMode;d.ie8Compat=3Ddocument.docume=
ntMode=3D=3D8;d.ie7Compat=3De=3D=3D7&&!document.documentMode||document.do=
cumentMode=3D=3D7;d.ie6Compat=3De<7||d.quirks;}if(d.gecko){var =
f=3Db.match(/rv:([\d\.]+)/);if(f){f=3Df[1].split('.');e=3Df[0]*10000+(f[1=
]||0)*100+ =
+(f[2]||0);}}if(d.opera)e=3DparseFloat(c.version());if(d.air)e=3DparseFlo=
at(b.match(/ adobeair\/(\d+)/)[1]);if(d.webkit)e=3DparseFloat(b.match(/ =
applewebkit\/(\d+)/)[1]);d.version=3De;d.isCompatible=3D!d.mobile&&(d.ie&=
&e>=3D6||d.gecko&&e>=3D10801||d.opera&&e>=3D9.5||d.air&&e>=3D1||d.webkit&=
&e>=3D522||false);d.cssClass=3D'cke_browser_'+(d.ie?'ie':d.gecko?'gecko':=
d.opera?'opera':d.air?'air':d.webkit?'webkit':'unknown');if(d.quirks)d.cs=
sClass+=3D' cke_browser_quirks';if(d.ie){d.cssClass+=3D' =
cke_browser_ie'+(d.version<7?'6':d.version>=3D8?'8':'7');if(d.quirks)d.cs=
sClass+=3D' cke_browser_iequirks';}if(d.gecko&&e<10900)d.cssClass+=3D' =
cke_browser_gecko18';
return d;})();var b=3Da.env;var =
c=3Db.ie;if(a.status=3D=3D'unloaded')(function(){a.event.implementOn(a);a=
.loadFullCore=3Dfunction(){if(a.status!=3D'basic_ready'){a.loadFullCore._=
load=3Dtrue;return;}delete a.loadFullCore;var =
e=3Ddocument.createElement('script');e.type=3D'text/javascript';e.src=3Da=
.basePath+'ckeditor.js';document.getElementsByTagName('head')[0].appendCh=
ild(e);};a.loadFullCoreTimeout=3D0;a.replaceClass=3D'ckeditor';a.replaceB=
yClassEnabled=3Dfalse;var =
d=3Dfunction(e,f,g,h){if(b.isCompatible){if(a.loadFullCore)a.loadFullCore=
();var i=3Dg(e,f,h);a.add(i);return i;}return =
null;};a.replace=3Dfunction(e,f){return =
d(e,f,a.editor.replace);};a.appendTo=3Dfunction(e,f,g){return =
d(e,f,a.editor.appendTo,g);};a.add=3Dfunction(e){var =
f=3Dthis._.pending||(this._.pending=3D[]);f.push(e);};a.replaceAll=3Dfunc=
tion(){var e=3Ddocument.getElementsByTagName('textarea');for(var =
f=3D0;f<e.length;f++){var =
g=3Dnull,h=3De[f],i=3Dh.name;if(!h.name&&!h.id)continue;if(typeof =
arguments[0]=3D=3D'string'){var j=3Dnew =
RegExp('(?:^|\\s)'+arguments[0]+'(?:$|\\s)');if(!j.test(h.className))cont=
inue;}else if(typeof =
arguments[0]=3D=3D'function'){g=3D{};if(arguments[0](h,g)=3D=3D=3Dfalse)c=
ontinue;}this.replace(h,g);}};(function(){var e=3Dfunction(){var =
f=3Da.loadFullCore,g=3Da.loadFullCoreTimeout;if(a.replaceByClassEnabled)a=
.replaceAll(a.replaceClass);a.status=3D'basic_ready';if(f&&f._load)f();el=
se =
if(g)setTimeout(function(){if(a.loadFullCore)a.loadFullCore();},g*1000);}=
;if(window.addEventListener)window.addEventListener('load',e,false);else =
if(window.attachEvent)window.attachEvent('onload',e);})();a.status=3D'bas=
ic_loaded';})();a.dom=3D{};var d=3Da.dom;(function(){var =
e=3D[];a.on('reset',function(){e=3D[];});a.tools=3D{arrayCompare:function=
(f,g){if(!f&&!g)return true;if(!f||!g||f.length!=3Dg.length)return =
false;for(var h=3D0;h<f.length;h++){if(f[h]!=3Dg[h])return false;}return =
true;},clone:function(f){var g;if(f&&f instanceof Array){g=3D[];for(var =
h=3D0;h<f.length;h++)g[h]=3Dthis.clone(f[h]);return =
g;}if(f=3D=3D=3Dnull||typeof f!=3D'object'||f instanceof String||f =
instanceof Number||f instanceof Boolean||f instanceof Date||f instanceof =
RegExp)return f;g=3Dnew f.constructor();for(var i in f){var =
j=3Df[i];g[i]=3Dthis.clone(j);}return g;},capitalize:function(f){return =
f.charAt(0).toUpperCase()+f.substring(1).toLowerCase();},extend:function(=
f){var g=3Darguments.length,h,i;if(typeof =
(h=3Darguments[g-1])=3D=3D'boolean')g--;else if(typeof =
(h=3Darguments[g-2])=3D=3D'boolean'){i=3Darguments[g-1];g-=3D2;}for(var =
j=3D1;j<g;j++){var k=3Darguments[j];for(var l in =
k){if(h=3D=3D=3Dtrue||f[l]=3D=3Dundefined)if(!i||l in =
i)f[l]=3Dk[l];}}return f;},prototypedCopy:function(f){var =
g=3Dfunction(){};
g.prototype=3Df;return new g();},isArray:function(f){return!!f&&f =
instanceof Array;},isEmpty:function(f){for(var g in =
f){if(f.hasOwnProperty(g))return false;}return =
true;},cssStyleToDomStyle:(function(){var =
f=3Ddocument.createElement('div').style,g=3Dtypeof =
f.cssFloat!=3D'undefined'?'cssFloat':typeof =
f.styleFloat!=3D'undefined'?'styleFloat':'float';return =
function(h){if(h=3D=3D'float')return g;else return =
h.replace(/-./g,function(i){return =
i.substr(1).toUpperCase();});};})(),buildStyleHtml:function(f){f=3D[].con=
cat(f);var g,h=3D[];for(var =
i=3D0;i<f.length;i++){g=3Df[i];if(/@import|[{}]/.test(g))h.push('<style>'=
+g+'</style>');else h.push('<link type=3D"text/css" rel=3Dstylesheet =
href=3D"'+g+'">');}return h.join('');},htmlEncode:function(f){var =
g=3Dfunction(k){var l=3Dnew d.element('span');l.setText(k);return =
l.getHtml();},h=3Dg('\n').toLowerCase()=3D=3D'<br>'?function(k){return =
g(k).replace(/<br>/gi,'\n');}:g,i=3Dg('>')=3D=3D'>'?function(k){return =
h(k).replace(/>/g,'&gt;');}:h,j=3Dg('  ')=3D=3D'&nbsp; =
'?function(k){return i(k).replace(/&nbsp;/g,' =
');}:i;this.htmlEncode=3Dj;return =
this.htmlEncode(f);},htmlEncodeAttr:function(f){return =
f.replace(/"/g,'&quot;').replace(/</g,'&lt;').replace(/>/g,'&gt;');},esca=
peCssSelector:function(f){return =
f.replace(/[\s#:.,$*^\[\]()~=3D+>]/g,'\\$&');},getNextNumber:(function(){=
var f=3D0;return function(){return++f;};})(),getNextId:function(){return =
'cke_'+this.getNextNumber();},override:function(f,g){return =
g(f);},setTimeout:function(f,g,h,i,j){if(!j)j=3Dwindow;if(!h)h=3Dj;return=
 j.setTimeout(function(){if(i)f.apply(h,[].concat(i));else =
f.apply(h);},g||0);},trim:(function(){var f=3D/(?:^[ \t\n\r]+)|(?:[ =
\t\n\r]+$)/g;return function(g){return =
g.replace(f,'');};})(),ltrim:(function(){var f=3D/^[ \t\n\r]+/g;return =
function(g){return g.replace(f,'');};})(),rtrim:(function(){var f=3D/[ =
\t\n\r]+$/g;return function(g){return =
g.replace(f,'');};})(),indexOf:Array.prototype.indexOf?function(f,g){retu=
rn f.indexOf(g);}:function(f,g){for(var =
h=3D0,i=3Df.length;h<i;h++){if(f[h]=3D=3D=3Dg)return =
h;}return-1;},bind:function(f,g){return function(){return =
f.apply(g,arguments);};},createClass:function(f){var =
g=3Df.$,h=3Df.base,i=3Df.privates||f._,j=3Df.proto,k=3Df.statics;if(i){va=
r l=3Dg;g=3Dfunction(){var p=3Dthis;var m=3Dp._||(p._=3D{});for(var n in =
i){var o=3Di[n];m[n]=3Dtypeof =
o=3D=3D'function'?a.tools.bind(o,p):o;}l.apply(p,arguments);};}if(h){g.pr=
ototype=3Dthis.prototypedCopy(h.prototype);g.prototype['constructor']=3Dg=
;g.prototype.base=3Dfunction(){this.base=3Dh.prototype.base;h.apply(this,=
arguments);this.base=3Darguments.callee;};}if(j)this.extend(g.prototype,j=
,true);
if(k)this.extend(g,k,true);return g;},addFunction:function(f,g){return =
e.push(function(){f.apply(g||this,arguments);})-1;},removeFunction:functi=
on(f){e[f]=3Dnull;},callFunction:function(f){var g=3De[f];return =
g&&g.apply(window,Array.prototype.slice.call(arguments,1));},cssLength:(f=
unction(){var f=3D/^\d+(?:\.\d+)?$/;return function(g){return =
g+(f.test(g)?'px':'');};})(),repeat:function(f,g){return new =
Array(g+1).join(f);},tryThese:function(){var f;for(var =
g=3D0,h=3Darguments.length;g<h;g++){var =
i=3Darguments[g];try{f=3Di();break;}catch(j){}}return =
f;},genKey:function(){return =
Array.prototype.slice.call(arguments).join('-');}};})();var =
e=3Da.tools;a.dtd=3D(function(){var =
f=3De.extend,g=3D{isindex:1,fieldset:1},h=3D{input:1,button:1,select:1,te=
xtarea:1,label:1},i=3Df({a:1},h),j=3Df({iframe:1},i),k=3D{hr:1,ul:1,menu:=
1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5=
:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1},l=3D{ins:1,del:1,script=
:1,style:1},m=3Df({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i=
:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span=
:1},l),n=3Df({sub:1,img:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1=
,big:1,small:1},m),o=3Df({p:1},n),p=3Df({iframe:1},n,h),q=3D{img:1,noscri=
pt:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h=
1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,co=
de:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframe=
s:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,st=
rike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acro=
nym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:=
1},r=3Df({a:1},p),s=3D{tr:1},t=3D{'#':1},u=3Df({param:1},q),v=3Df({form:1=
},g,j,k,o),w=3D{li:1},x=3D{style:1,script:1},y=3D{base:1,link:1,meta:1,ti=
tle:1},z=3Df(y,x),A=3D{head:1,body:1},B=3D{html:1},C=3D{address:1,blockqu=
ote:1,center:1,dir:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:=
1,h6:1,hr:1,isindex:1,menu:1,noframes:1,ol:1,p:1,pre:1,table:1,ul:1};retu=
rn{$nonBodyContent:f(B,A,y),$block:C,$blockLimit:{body:1,div:1,td:1,th:1,=
caption:1,form:1},$inline:r,$body:f({script:1,style:1},C),$cdata:{script:=
1,style:1},$empty:{area:1,base:1,br:1,col:1,hr:1,img:1,input:1,link:1,met=
a:1,param:1},$listItem:{dd:1,dt:1,li:1},$list:{ul:1,ol:1,dl:1},$nonEditab=
le:{applet:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,script:1,t=
extarea:1,param:1},$removeEmpty:{abbr:1,acronym:1,address:1,b:1,bdo:1,big=
:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,s:1,=
samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1},$ta=
bIndex:{a:1,area:1,button:1,input:1,object:1,select:1,textarea:1},$tableC=
ontent:{caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1=
},html:A,head:z,style:t,script:t,body:v,base:{},link:{},meta:{},title:t,c=
ol:{},tr:{td:1,th:1},img:{},colgroup:{col:1},noscript:v,td:v,br:{},th:v,c=
enter:v,kbd:r,button:f(o,k),basefont:{},h5:r,h4:r,samp:r,h6:r,ol:w,h1:r,h=
3:r,option:t,h2:r,form:f(g,j,k,o),select:{optgroup:1,option:1},font:r,ins=
:r,menu:w,abbr:r,label:r,table:{thead:1,col:1,tbody:1,tr:1,colgroup:1,cap=
tion:1,tfoot:1},code:r,script:t,tfoot:s,cite:r,li:v,input:{},iframe:v,str=
ong:r,textarea:t,noframes:v,big:r,small:r,span:r,hr:{},dt:r,sub:r,optgrou=
p:{option:1},param:{},bdo:r,'var':r,div:v,object:u,sup:r,dd:v,strike:r,ar=
ea:{},dir:w,map:f({area:1,form:1,p:1},g,l,k),applet:u,dl:{dt:1,dd:1},del:=
r,isindex:{},fieldset:f({legend:1},q),thead:s,ul:w,acronym:r,b:r,a:p,bloc=
kquote:v,caption:r,i:r,u:r,tbody:s,s:r,address:f(j,o),tt:r,legend:r,q:r,p=
re:f(m,i),p:r,em:r,dfn:r};
})();var =
f=3Da.dtd;d.event=3Dfunction(g){this.$=3Dg;};d.event.prototype=3D{getKey:=
function(){return =
this.$.keyCode||this.$.which;},getKeystroke:function(){var h=3Dthis;var =
g=3Dh.getKey();if(h.$.ctrlKey||h.$.metaKey)g+=3D1000;if(h.$.shiftKey)g+=3D=
2000;if(h.$.altKey)g+=3D4000;return g;},preventDefault:function(g){var =
h=3Dthis.$;if(h.preventDefault)h.preventDefault();else =
h.returnValue=3Dfalse;if(g)this.stopPropagation();},stopPropagation:funct=
ion(){var g=3Dthis.$;if(g.stopPropagation)g.stopPropagation();else =
g.cancelBubble=3Dtrue;},getTarget:function(){var =
g=3Dthis.$.target||this.$.srcElement;return g?new =
d.node(g):null;}};a.CTRL=3D1000;a.SHIFT=3D2000;a.ALT=3D4000;d.domObject=3D=
function(g){if(g)this.$=3Dg;};d.domObject.prototype=3D(function(){var =
g=3Dfunction(h,i){return function(j){if(typeof =
a!=3D'undefined')h.fire(i,new =
d.event(j));};};return{getPrivate:function(){var =
h;if(!(h=3Dthis.getCustomData('_')))this.setCustomData('_',h=3D{});return=
 h;},on:function(h){var k=3Dthis;var =
i=3Dk.getCustomData('_cke_nativeListeners');if(!i){i=3D{};k.setCustomData=
('_cke_nativeListeners',i);}if(!i[h]){var =
j=3Di[h]=3Dg(k,h);if(k.$.addEventListener)k.$.addEventListener(h,j,!!a.ev=
ent.useCapture);else =
if(k.$.attachEvent)k.$.attachEvent('on'+h,j);}return =
a.event.prototype.on.apply(k,arguments);},removeListener:function(h){var =
k=3Dthis;a.event.prototype.removeListener.apply(k,arguments);if(!k.hasLis=
teners(h)){var =
i=3Dk.getCustomData('_cke_nativeListeners'),j=3Di&&i[h];if(j){if(k.$.remo=
veEventListener)k.$.removeEventListener(h,j,false);else =
if(k.$.detachEvent)k.$.detachEvent('on'+h,j);delete =
i[h];}}},removeAllListeners:function(){var k=3Dthis;var =
h=3Dk.getCustomData('_cke_nativeListeners');for(var i in h){var =
j=3Dh[i];if(k.$.removeEventListener)k.$.removeEventListener(i,j,false);el=
se if(k.$.detachEvent)k.$.detachEvent('on'+i,j);delete =
h[i];}}};})();(function(g){var =
h=3D{};a.on('reset',function(){h=3D{};});g.equals=3Dfunction(i){return =
i&&i.$=3D=3D=3Dthis.$;};g.setCustomData=3Dfunction(i,j){var =
k=3Dthis.getUniqueId(),l=3Dh[k]||(h[k]=3D{});l[i]=3Dj;return =
this;};g.getCustomData=3Dfunction(i){var =
j=3Dthis.$._cke_expando,k=3Dj&&h[j];return =
k&&k[i];};g.removeCustomData=3Dfunction(i){var =
j=3Dthis.$._cke_expando,k=3Dj&&h[j],l=3Dk&&k[i];if(typeof =
l!=3D'undefined')delete k[i];return =
l||null;};g.clearCustomData=3Dfunction(){this.removeAllListeners();var =
i=3Dthis.$._cke_expando;i&&delete =
h[i];};g.getUniqueId=3Dfunction(){return =
this.$._cke_expando||(this.$._cke_expando=3De.getNextNumber());};a.event.=
implementOn(g);})(d.domObject.prototype);d.window=3Dfunction(g){d.domObje=
ct.call(this,g);};d.window.prototype=3Dnew d.domObject();
e.extend(d.window.prototype,{focus:function(){if(b.webkit&&this.$.parent)=
this.$.parent.focus();this.$.focus();},getViewPaneSize:function(){var =
g=3Dthis.$.document,h=3Dg.compatMode=3D=3D'CSS1Compat';return{width:(h?g.=
documentElement.clientWidth:g.body.clientWidth)||0,height:(h?g.documentEl=
ement.clientHeight:g.body.clientHeight)||0};},getScrollPosition:function(=
){var g=3Dthis.$;if('pageXOffset' in =
g)return{x:g.pageXOffset||0,y:g.pageYOffset||0};else{var =
h=3Dg.document;return{x:h.documentElement.scrollLeft||h.body.scrollLeft||=
0,y:h.documentElement.scrollTop||h.body.scrollTop||0};}}});d.document=3Df=
unction(g){d.domObject.call(this,g);};var =
g=3Dd.document;g.prototype=3Dnew =
d.domObject();e.extend(g.prototype,{appendStyleSheet:function(h){if(this.=
$.createStyleSheet)this.$.createStyleSheet(h);else{var i=3Dnew =
d.element('link');i.setAttributes({rel:'stylesheet',type:'text/css',href:=
h});this.getHead().append(i);}},appendStyleText:function(h){var =
k=3Dthis;if(k.$.createStyleSheet){var =
i=3Dk.$.createStyleSheet('');i.cssText=3Dh;}else{var j=3Dnew =
d.element('style',k);j.append(new =
d.text(h,k));k.getHead().append(j);}},createElement:function(h,i){var =
j=3Dnew =
d.element(h,this);if(i){if(i.attributes)j.setAttributes(i.attributes);if(=
i.styles)j.setStyles(i.styles);}return j;},createText:function(h){return =
new =
d.text(h,this);},focus:function(){this.getWindow().focus();},getById:func=
tion(h){var i=3Dthis.$.getElementById(h);return i?new =
d.element(i):null;},getByAddress:function(h,i){var =
j=3Dthis.$.documentElement;for(var k=3D0;j&&k<h.length;k++){var =
l=3Dh[k];if(!i){j=3Dj.childNodes[l];continue;}var m=3D-1;for(var =
n=3D0;n<j.childNodes.length;n++){var =
o=3Dj.childNodes[n];if(i=3D=3D=3Dtrue&&o.nodeType=3D=3D3&&o.previousSibli=
ng&&o.previousSibling.nodeType=3D=3D3)continue;m++;if(m=3D=3Dl){j=3Do;bre=
ak;}}}return j?new =
d.node(j):null;},getElementsByTag:function(h,i){if(!c&&i)h=3Di+':'+h;retu=
rn new =
d.nodeList(this.$.getElementsByTagName(h));},getHead:function(){var =
h=3Dthis.$.getElementsByTagName('head')[0];h=3Dnew =
d.element(h);return(this.getHead=3Dfunction(){return =
h;})();},getBody:function(){var h=3Dnew =
d.element(this.$.body);return(this.getBody=3Dfunction(){return =
h;})();},getDocumentElement:function(){var h=3Dnew =
d.element(this.$.documentElement);return(this.getDocumentElement=3Dfuncti=
on(){return h;})();},getWindow:function(){var h=3Dnew =
d.window(this.$.parentWindow||this.$.defaultView);return(this.getWindow=3D=
function(){return =
h;})();}});d.node=3Dfunction(h){if(h){switch(h.nodeType){case 9:return =
new g(h);case 1:return new d.element(h);case 3:return new =
d.text(h);}d.domObject.call(this,h);
}return this;};d.node.prototype=3Dnew =
d.domObject();a.NODE_ELEMENT=3D1;a.NODE_DOCUMENT=3D9;a.NODE_TEXT=3D3;a.NO=
DE_COMMENT=3D8;a.NODE_DOCUMENT_FRAGMENT=3D11;a.POSITION_IDENTICAL=3D0;a.P=
OSITION_DISCONNECTED=3D1;a.POSITION_FOLLOWING=3D2;a.POSITION_PRECEDING=3D=
4;a.POSITION_IS_CONTAINED=3D8;a.POSITION_CONTAINS=3D16;e.extend(d.node.pr=
ototype,{appendTo:function(h,i){h.append(this,i);return =
h;},clone:function(h,i){var j=3Dthis.$.cloneNode(h);if(!i){var =
k=3Dfunction(l){if(l.nodeType!=3D1)return;l.removeAttribute('id',false);l=
.removeAttribute('_cke_expando',false);var m=3Dl.childNodes;for(var =
n=3D0;n<m.length;n++)k(m[n]);};k(j);}return new =
d.node(j);},hasPrevious:function(){return!!this.$.previousSibling;},hasNe=
xt:function(){return!!this.$.nextSibling;},insertAfter:function(h){h.$.pa=
rentNode.insertBefore(this.$,h.$.nextSibling);return =
h;},insertBefore:function(h){h.$.parentNode.insertBefore(this.$,h.$);retu=
rn =
h;},insertBeforeMe:function(h){this.$.parentNode.insertBefore(h.$,this.$)=
;return h;},getAddress:function(h){var =
i=3D[],j=3Dthis.getDocument().$.documentElement,k=3Dthis.$;while(k&&k!=3D=
j){var l=3Dk.parentNode,m=3D-1;if(l){for(var =
n=3D0;n<l.childNodes.length;n++){var =
o=3Dl.childNodes[n];if(h&&o.nodeType=3D=3D3&&o.previousSibling&&o.previou=
sSibling.nodeType=3D=3D3)continue;m++;if(o=3D=3Dk)break;}i.unshift(m);}k=3D=
l;}return i;},getDocument:function(){var h=3Dnew =
g(this.$.ownerDocument||this.$.parentNode.ownerDocument);return(this.getD=
ocument=3Dfunction(){return h;})();},getIndex:function(){var =
h=3Dthis.$,i=3Dh.parentNode&&h.parentNode.firstChild,j=3D-1;while(i){j++;=
if(i=3D=3Dh)return =
j;i=3Di.nextSibling;}return-1;},getNextSourceNode:function(h,i,j){if(j&&!=
j.call){var k=3Dj;j=3Dfunction(n){return!n.equals(k);};}var =
l=3D!h&&this.getFirst&&this.getFirst(),m;if(!l){if(this.type=3D=3D1&&j&&j=
(this,true)=3D=3D=3Dfalse)return =
null;l=3Dthis.getNext();}while(!l&&(m=3D(m||this).getParent())){if(j&&j(m=
,true)=3D=3D=3Dfalse)return null;l=3Dm.getNext();}if(!l)return =
null;if(j&&j(l)=3D=3D=3Dfalse)return null;if(i&&i!=3Dl.type)return =
l.getNextSourceNode(false,i,j);return =
l;},getPreviousSourceNode:function(h,i,j){if(j&&!j.call){var =
k=3Dj;j=3Dfunction(n){return!n.equals(k);};}var =
l=3D!h&&this.getLast&&this.getLast(),m;if(!l){if(this.type=3D=3D1&&j&&j(t=
his,true)=3D=3D=3Dfalse)return =
null;l=3Dthis.getPrevious();}while(!l&&(m=3D(m||this).getParent())){if(j&=
&j(m,true)=3D=3D=3Dfalse)return null;l=3Dm.getPrevious();}if(!l)return =
null;if(j&&j(l)=3D=3D=3Dfalse)return null;if(i&&l.type!=3Di)return =
l.getPreviousSourceNode(false,i,j);return =
l;},getPrevious:function(h){var =
i=3Dthis.$,j;do{i=3Di.previousSibling;j=3Di&&new =
d.node(i);}while(j&&h&&!h(j))return j;
},getNext:function(h){var i=3Dthis.$,j;do{i=3Di.nextSibling;j=3Di&&new =
d.node(i);}while(j&&h&&!h(j))return j;},getParent:function(){var =
h=3Dthis.$.parentNode;return h&&h.nodeType=3D=3D1?new =
d.node(h):null;},getParents:function(h){var i=3Dthis,j=3D[];do =
j[h?'push':'unshift'](i);while(i=3Di.getParent())return =
j;},getCommonAncestor:function(h){var j=3Dthis;if(h.equals(j))return =
j;if(h.contains&&h.contains(j))return h;var =
i=3Dj.contains?j:j.getParent();do{if(i.contains(h))return =
i;}while(i=3Di.getParent())return null;},getPosition:function(h){var =
i=3Dthis.$,j=3Dh.$;if(i.compareDocumentPosition)return =
i.compareDocumentPosition(j);if(i=3D=3Dj)return =
0;if(this.type=3D=3D1&&h.type=3D=3D1){if(i.contains){if(i.contains(j))ret=
urn 16+4;if(j.contains(i))return 8+2;}if('sourceIndex' in i)return =
i.sourceIndex<0||j.sourceIndex<0?1:i.sourceIndex<j.sourceIndex?4:2;}var =
k=3Dthis.getAddress(),l=3Dh.getAddress(),m=3DMath.min(k.length,l.length);=
for(var n=3D0;n<=3Dm-1;n++){if(k[n]!=3Dl[n]){if(n<m)return =
k[n]<l[n]?4:2;break;}}return =
k.length<l.length?16+4:8+2;},getAscendant:function(h,i){var =
j=3Dthis.$;if(!i)j=3Dj.parentNode;while(j){if(j.nodeName&&j.nodeName.toLo=
werCase()=3D=3Dh)return new d.node(j);j=3Dj.parentNode;}return =
null;},hasAscendant:function(h,i){var =
j=3Dthis.$;if(!i)j=3Dj.parentNode;while(j){if(j.nodeName&&j.nodeName.toLo=
werCase()=3D=3Dh)return true;j=3Dj.parentNode;}return =
false;},move:function(h,i){h.append(this.remove(),i);},remove:function(h)=
{var i=3Dthis.$,j=3Di.parentNode;if(j){if(h)for(var =
k;k=3Di.firstChild;)j.insertBefore(i.removeChild(k),i);j.removeChild(i);}=
return =
this;},replace:function(h){this.insertBefore(h);h.remove();},trim:functio=
n(){this.ltrim();this.rtrim();},ltrim:function(){var k=3Dthis;var =
h;while(k.getFirst&&(h=3Dk.getFirst())){if(h.type=3D=3D3){var =
i=3De.ltrim(h.getText()),j=3Dh.getLength();if(!i){h.remove();continue;}el=
se =
if(i.length<j){h.split(j-i.length);k.$.removeChild(k.$.firstChild);}}brea=
k;}},rtrim:function(){var k=3Dthis;var =
h;while(k.getLast&&(h=3Dk.getLast())){if(h.type=3D=3D3){var =
i=3De.rtrim(h.getText()),j=3Dh.getLength();if(!i){h.remove();continue;}el=
se =
if(i.length<j){h.split(i.length);k.$.lastChild.parentNode.removeChild(k.$=
.lastChild);}}break;}if(!c&&!b.opera){h=3Dk.$.lastChild;if(h&&h.type=3D=3D=
1&&h.nodeName.toLowerCase()=3D=3D'br')h.parentNode.removeChild(h);}},isRe=
adOnly:function(){var =
h=3Dthis;while(h){if(h.type=3D=3D1){if(h.is('body')||h.getCustomData('_ck=
e_notReadOnly'))break;if(h.getAttribute('contentEditable')=3D=3D'false')r=
eturn h;else =
if(h.getAttribute('contentEditable')=3D=3D'true')break;}h=3Dh.getParent()=
;}return false;}});d.nodeList=3Dfunction(h){this.$=3Dh;
};d.nodeList.prototype=3D{count:function(){return =
this.$.length;},getItem:function(h){var i=3Dthis.$[h];return i?new =
d.node(i):null;}};d.element=3Dfunction(h,i){if(typeof =
h=3D=3D'string')h=3D(i?i.$:document).createElement(h);d.domObject.call(th=
is,h);};var h=3Dd.element;h.get=3Dfunction(i){return i&&(i.$?i:new =
h(i));};h.prototype=3Dnew d.node();h.createFromHtml=3Dfunction(i,j){var =
k=3Dnew h('div',j);k.setHtml(i);return =
k.getFirst().remove();};h.setMarker=3Dfunction(i,j,k,l){var =
m=3Dj.getCustomData('list_marker_id')||j.setCustomData('list_marker_id',e=
.getNextNumber()).getCustomData('list_marker_id'),n=3Dj.getCustomData('li=
st_marker_names')||j.setCustomData('list_marker_names',{}).getCustomData(=
'list_marker_names');i[m]=3Dj;n[k]=3D1;return =
j.setCustomData(k,l);};h.clearAllMarkers=3Dfunction(i){for(var j in =
i)h.clearMarkers(i,i[j],true);};h.clearMarkers=3Dfunction(i,j,k){var =
l=3Dj.getCustomData('list_marker_names'),m=3Dj.getCustomData('list_marker=
_id');for(var n in =
l)j.removeCustomData(n);j.removeCustomData('list_marker_names');if(k){j.r=
emoveCustomData('list_marker_id');delete =
i[m];}};e.extend(h.prototype,{type:1,addClass:function(i){var =
j=3Dthis.$.className;if(j){var k=3Dnew =
RegExp('(?:^|\\s)'+i+'(?:\\s|$)','');if(!k.test(j))j+=3D' =
'+i;}this.$.className=3Dj||i;},removeClass:function(i){var =
j=3Dthis.getAttribute('class');if(j){var k=3Dnew =
RegExp('(?:^|\\s+)'+i+'(?=3D\\s|$)','i');if(k.test(j)){j=3Dj.replace(k,''=
).replace(/^\s+/,'');if(j)this.setAttribute('class',j);else =
this.removeAttribute('class');}}},hasClass:function(i){var j=3Dnew =
RegExp('(?:^|\\s+)'+i+'(?=3D\\s|$)','');return =
j.test(this.getAttribute('class'));},append:function(i,j){var =
k=3Dthis;if(typeof =
i=3D=3D'string')i=3Dk.getDocument().createElement(i);if(j)k.$.insertBefor=
e(i.$,k.$.firstChild);else k.$.appendChild(i.$);return =
i;},appendHtml:function(i){var =
k=3Dthis;if(!k.$.childNodes.length)k.setHtml(i);else{var j=3Dnew =
h('div',k.getDocument());j.setHtml(i);j.moveChildren(k);}},appendText:fun=
ction(i){if(this.$.text!=3Dundefined)this.$.text+=3Di;else =
this.append(new d.text(i));},appendBogus:function(){var k=3Dthis;var =
i=3Dk.getLast();while(i&&i.type=3D=3D3&&!e.rtrim(i.getText()))i=3Di.getPr=
evious();if(!i||!i.is||!i.is('br')){var =
j=3Db.opera?k.getDocument().createText(''):k.getDocument().createElement(=
'br');b.gecko&&j.setAttribute('type','_moz');k.append(j);}},breakParent:f=
unction(i){var l=3Dthis;var j=3Dnew =
d.range(l.getDocument());j.setStartAfter(l);j.setEndAfter(i);var =
k=3Dj.extractContents();j.insertNode(l.remove());k.insertAfterNode(l);},c=
ontains:c||b.webkit?function(i){var j=3Dthis.$;return =
i.type!=3D1?j.contains(i.getParent().$):j!=3Di.$&&j.contains(i.$);
}:function(i){return!!(this.$.compareDocumentPosition(i.$)&16);},focus:fu=
nction(){try{this.$.focus();}catch(i){}},getHtml:function(){var =
i=3Dthis.$.innerHTML;return =
c?i.replace(/<\?[^>]*>/g,''):i;},getOuterHtml:function(){var =
j=3Dthis;if(j.$.outerHTML)return =
j.$.outerHTML.replace(/<\?[^>]*>/,'');var =
i=3Dj.$.ownerDocument.createElement('div');i.appendChild(j.$.cloneNode(tr=
ue));return i.innerHTML;},setHtml:function(i){return =
this.$.innerHTML=3Di;},setText:function(i){h.prototype.setText=3Dthis.$.i=
nnerText!=3Dundefined?function(j){return =
this.$.innerText=3Dj;}:function(j){return =
this.$.textContent=3Dj;};return =
this.setText(i);},getAttribute:(function(){var i=3Dfunction(j){return =
this.$.getAttribute(j,2);};if(c&&(b.ie7Compat||b.ie6Compat))return =
function(j){var n=3Dthis;switch(j){case =
'class':j=3D'className';break;case 'tabindex':var =
k=3Di.call(n,j);if(k!=3D=3D0&&n.$.tabIndex=3D=3D=3D0)k=3Dnull;return =
k;break;case 'checked':var =
l=3Dn.$.attributes.getNamedItem(j),m=3Dl.specified?l.nodeValue:n.$.checke=
d;return m?'checked':null;case 'hspace':return n.$.hspace;case =
'style':return n.$.style.cssText;}return i.call(n,j);};else return =
i;})(),getChildren:function(){return new =
d.nodeList(this.$.childNodes);},getComputedStyle:c?function(i){return =
this.$.currentStyle[e.cssStyleToDomStyle(i)];}:function(i){return =
this.getWindow().$.getComputedStyle(this.$,'').getPropertyValue(i);},getD=
td:function(){var i=3Df[this.getName()];this.getDtd=3Dfunction(){return =
i;};return =
i;},getElementsByTag:g.prototype.getElementsByTag,getTabIndex:c?function(=
){var =
i=3Dthis.$.tabIndex;if(i=3D=3D=3D0&&!f.$tabIndex[this.getName()]&&parseIn=
t(this.getAttribute('tabindex'),10)!=3D=3D0)i=3D-1;return =
i;}:b.webkit?function(){var =
i=3Dthis.$.tabIndex;if(i=3D=3Dundefined){i=3DparseInt(this.getAttribute('=
tabindex'),10);if(isNaN(i))i=3D-1;}return i;}:function(){return =
this.$.tabIndex;},getText:function(){return =
this.$.textContent||this.$.innerText||'';},getWindow:function(){return =
this.getDocument().getWindow();},getId:function(){return =
this.$.id||null;},getNameAtt:function(){return =
this.$.name||null;},getName:function(){var =
i=3Dthis.$.nodeName.toLowerCase();if(c){var =
j=3Dthis.$.scopeName;if(j!=3D'HTML')i=3Dj.toLowerCase()+':'+i;}return(thi=
s.getName=3Dfunction(){return i;})();},getValue:function(){return =
this.$.value;},getFirst:function(i){var j=3Dthis.$.firstChild,k=3Dj&&new =
d.node(j);if(k&&i&&!i(k))k=3Dk.getNext(i);return =
k;},getLast:function(i){var j=3Dthis.$.lastChild,k=3Dj&&new =
d.node(j);if(k&&i&&!i(k))k=3Dk.getPrevious(i);return =
k;},getStyle:function(i){return this.$.style[e.cssStyleToDomStyle(i)];
},is:function(){var i=3Dthis.getName();for(var =
j=3D0;j<arguments.length;j++){if(arguments[j]=3D=3Di)return true;}return =
false;},isEditable:function(){var =
i=3Dthis.getName(),j=3D!f.$nonEditable[i]&&(f[i]||f.span);return =
j&&j['#'];},isIdentical:function(i){if(this.getName()!=3Di.getName())retu=
rn false;var =
j=3Dthis.$.attributes,k=3Di.$.attributes,l=3Dj.length,m=3Dk.length;if(!c&=
&l!=3Dm)return false;for(var n=3D0;n<l;n++){var =
o=3Dj[n];if((!c||o.specified&&o.nodeName!=3D'_cke_expando')&&o.nodeValue!=
=3Di.getAttribute(o.nodeName))return =
false;}if(c)for(n=3D0;n<m;n++){o=3Dk[n];if(o.specified&&o.nodeName!=3D'_c=
ke_expando'&&o.nodeValue!=3Dthis.getAttribute(o.nodeName))return =
false;}return true;},isVisible:function(){var =
i=3D!!this.$.offsetHeight&&this.getComputedStyle('visibility')!=3D'hidden=
',j,k;if(i&&(b.webkit||b.opera)){j=3Dthis.getWindow();if(!j.equals(a.docu=
ment.getWindow())&&(k=3Dj.$.frameElement))i=3Dnew =
h(k).isVisible();}return =
i;},isEmptyInlineRemoveable:function(){if(!f.$removeEmpty[this.getName()]=
)return false;var i=3Dthis.getChildren();for(var =
j=3D0,k=3Di.count();j<k;j++){var =
l=3Di.getItem(j);if(l.type=3D=3D1&&l.getAttribute('_cke_bookmark'))contin=
ue;if(l.type=3D=3D1&&!l.isEmptyInlineRemoveable()||l.type=3D=3D3&&e.trim(=
l.getText()))return false;}return =
true;},hasAttributes:c&&(b.ie7Compat||b.ie6Compat)?function(){var =
i=3Dthis.$.attributes;for(var j=3D0;j<i.length;j++){var =
k=3Di[j];switch(k.nodeName){case =
'class':if(this.getAttribute('class'))return true;case =
'_cke_expando':continue;default:if(k.specified)return true;}}return =
false;}:function(){var =
i=3Dthis.$.attributes,j=3Di.length,k=3D{_cke_expando:1,_moz_dirty:1};retu=
rn =
j>0&&(j>2||!k[i[0].nodeName]||j=3D=3D2&&!k[i[1].nodeName]);},hasAttribute=
:function(i){var =
j=3Dthis.$.attributes.getNamedItem(i);return!!(j&&j.specified);},hide:fun=
ction(){this.setStyle('display','none');},moveChildren:function(i,j){var =
k=3Dthis.$;i=3Di.$;if(k=3D=3Di)return;var =
l;if(j)while(l=3Dk.lastChild)i.insertBefore(k.removeChild(l),i.firstChild=
);else =
while(l=3Dk.firstChild)i.appendChild(k.removeChild(l));},mergeSiblings:(f=
unction(){function i(j,k,l){if(k&&k.type=3D=3D1){var =
m=3D[];while(k.getAttribute('_cke_bookmark')||k.isEmptyInlineRemoveable()=
){m.push(k);k=3Dl?k.getNext():k.getPrevious();if(!k||k.type!=3D1)return;}=
if(j.isIdentical(k)){var =
n=3Dl?j.getLast():j.getFirst();while(m.length)m.shift().move(j,!l);k.move=
Children(j,!l);k.remove();if(n&&n.type=3D=3D1)n.mergeSiblings();}}};retur=
n function(){var =
j=3Dthis;if(!(f.$removeEmpty[j.getName()]||j.is('a')))return;i(j,j.getNex=
t(),true);i(j,j.getPrevious());};})(),show:function(){this.setStyles({dis=
play:'',visibility:''});
},setAttribute:(function(){var =
i=3Dfunction(j,k){this.$.setAttribute(j,k);return =
this;};if(c&&(b.ie7Compat||b.ie6Compat))return function(j,k){var =
l=3Dthis;if(j=3D=3D'class')l.$.className=3Dk;else =
if(j=3D=3D'style')l.$.style.cssText=3Dk;else =
if(j=3D=3D'tabindex')l.$.tabIndex=3Dk;else =
if(j=3D=3D'checked')l.$.checked=3Dk;else i.apply(l,arguments);return =
l;};else return i;})(),setAttributes:function(i){for(var j in =
i)this.setAttribute(j,i[j]);return =
this;},setValue:function(i){this.$.value=3Di;return =
this;},removeAttribute:(function(){var =
i=3Dfunction(j){this.$.removeAttribute(j);};if(c&&(b.ie7Compat||b.ie6Comp=
at))return function(j){if(j=3D=3D'class')j=3D'className';else =
if(j=3D=3D'tabindex')j=3D'tabIndex';i.call(this,j);};else return =
i;})(),removeAttributes:function(i){if(e.isArray(i))for(var =
j=3D0;j<i.length;j++)this.removeAttribute(i[j]);else for(var k in =
i)i.hasOwnProperty(k)&&this.removeAttribute(k);},removeStyle:function(i){=
var =
j=3Dthis;j.setStyle(i,'');if(j.$.style.removeAttribute)j.$.style.removeAt=
tribute(e.cssStyleToDomStyle(i));if(!j.$.style.cssText)j.removeAttribute(=
'style');},setStyle:function(i,j){this.$.style[e.cssStyleToDomStyle(i)]=3D=
j;return this;},setStyles:function(i){for(var j in =
i)this.setStyle(j,i[j]);return =
this;},setOpacity:function(i){if(c){i=3DMath.round(i*100);this.setStyle('=
filter',i>=3D100?'':'progid:DXImageTransform.Microsoft.Alpha(opacity=3D'+=
i+')');}else =
this.setStyle('opacity',i);},unselectable:b.gecko?function(){this.$.style=
.MozUserSelect=3D'none';this.on('dragstart',function(i){i.data.preventDef=
ault();});}:b.webkit?function(){this.$.style.KhtmlUserSelect=3D'none';thi=
s.on('dragstart',function(i){i.data.preventDefault();});}:function(){if(c=
||b.opera){var =
i=3Dthis.$,j,k=3D0;i.unselectable=3D'on';while(j=3Di.all[k++])switch(j.ta=
gName.toLowerCase()){case 'iframe':case 'textarea':case 'input':case =
'select':break;default:j.unselectable=3D'on';}}},getPositionedAncestor:fu=
nction(){var =
i=3Dthis;while(i.getName()!=3D'html'){if(i.getComputedStyle('position')!=3D=
'static')return i;i=3Di.getParent();}return =
null;},getDocumentPosition:function(i){var D=3Dthis;var =
j=3D0,k=3D0,l=3DD.getDocument().getBody(),m=3DD.getDocument().$.compatMod=
e=3D=3D'BackCompat',n=3DD.getDocument();if(document.documentElement.getBo=
undingClientRect){var =
o=3DD.$.getBoundingClientRect(),p=3Dn.$,q=3Dp.documentElement,r=3Dq.clien=
tTop||l.$.clientTop||0,s=3Dq.clientLeft||l.$.clientLeft||0,t=3Dtrue;if(c)=
{var =
u=3Dn.getDocumentElement().contains(D),v=3Dn.getBody().contains(D);t=3Dm&=
&v||!m&&u;}if(t){j=3Do.left+(!m&&q.scrollLeft||l.$.scrollLeft);j-=3Ds;k=3D=
o.top+(!m&&q.scrollTop||l.$.scrollTop);
k-=3Dr;}}else{var =
w=3DD,x=3Dnull,y;while(w&&!(w.getName()=3D=3D'body'||w.getName()=3D=3D'ht=
ml')){j+=3Dw.$.offsetLeft-w.$.scrollLeft;k+=3Dw.$.offsetTop-w.$.scrollTop=
;if(!w.equals(D)){j+=3Dw.$.clientLeft||0;k+=3Dw.$.clientTop||0;}var =
z=3Dx;while(z&&!z.equals(w)){j-=3Dz.$.scrollLeft;k-=3Dz.$.scrollTop;z=3Dz=
.getParent();}x=3Dw;w=3D(y=3Dw.$.offsetParent)?new h(y):null;}}if(i){var =
A=3DD.getWindow(),B=3Di.getWindow();if(!A.equals(B)&&A.$.frameElement){va=
r C=3Dnew =
h(A.$.frameElement).getDocumentPosition(i);j+=3DC.x;k+=3DC.y;}}if(!docume=
nt.documentElement.getBoundingClientRect)if(b.gecko&&!m){j+=3DD.$.clientL=
eft?1:0;k+=3DD.$.clientTop?1:0;}return{x:j,y:k};},scrollIntoView:function=
(i){var o=3Dthis;var =
j=3Do.getWindow(),k=3Dj.getViewPaneSize().height,l=3Dk*-1;if(i)l+=3Dk;els=
e{l+=3Do.$.offsetHeight||0;l+=3DparseInt(o.getComputedStyle('marginBottom=
')||0,10)||0;}var m=3Do.getDocumentPosition();l+=3Dm.y;l=3Dl<0?0:l;var =
n=3Dj.getScrollPosition().y;if(l>n||l<n-k)j.$.scrollTo(0,l);},setState:fu=
nction(i){var j=3Dthis;switch(i){case =
1:j.addClass('cke_on');j.removeClass('cke_off');j.removeClass('cke_disabl=
ed');break;case =
0:j.addClass('cke_disabled');j.removeClass('cke_off');j.removeClass('cke_=
on');break;default:j.addClass('cke_off');j.removeClass('cke_on');j.remove=
Class('cke_disabled');break;}},getFrameDocument:function(){var =
i=3Dthis.$;try{i.contentWindow.document;}catch(j){i.src=3Di.src;if(c&&b.v=
ersion<7)window.showModalDialog('javascript:document.write("<script>windo=
w.setTimeout(function(){window.close();},50);</script>")');}return =
i&&new g(i.contentWindow.document);},copyAttributes:function(i,j){var =
p=3Dthis;var k=3Dp.$.attributes;j=3Dj||{};for(var =
l=3D0;l<k.length;l++){var m=3Dk[l],n=3Dm.nodeName.toLowerCase(),o;if(n =
in =
j)continue;if(n=3D=3D'checked'&&(o=3Dp.getAttribute(n)))i.setAttribute(n,=
o);else =
if(m.specified||c&&m.nodeValue&&n=3D=3D'value'){o=3Dp.getAttribute(n);if(=
o=3D=3D=3Dnull)o=3Dm.nodeValue;i.setAttribute(n,o);}}if(p.$.style.cssText=
!=3D=3D'')i.$.style.cssText=3Dp.$.style.cssText;},renameNode:function(i){=
var l=3Dthis;if(l.getName()=3D=3Di)return;var =
j=3Dl.getDocument(),k=3Dnew =
h(i,j);l.copyAttributes(k);l.moveChildren(k);l.getParent()&&l.$.parentNod=
e.replaceChild(k.$,l.$);k.$._cke_expando=3Dl.$._cke_expando;l.$=3Dk.$;},g=
etChild:function(i){var j=3Dthis.$;if(!i.slice)j=3Dj.childNodes[i];else =
while(i.length>0&&j)j=3Dj.childNodes[i.shift()];return j?new =
d.node(j):null;},getChildCount:function(){return =
this.$.childNodes.length;},disableContextMenu:function(){this.on('context=
menu',function(i){if(!i.data.getTarget().hasClass('cke_enable_context_men=
u'))i.data.preventDefault();});},setSize:(function(){var =
i=3D{width:['border-left-width','border-right-width','padding-left','padd=
ing-right'],height:['border-top-width','border-bottom-width','padding-top=
','padding-bottom']};
return function(j,k,l){if(typeof =
k=3D=3D'number'){if(l&&!(c&&b.quirks)){var m=3D0;for(var =
n=3D0,o=3Di[j].length;n<o;n++)m+=3DparseInt(this.getComputedStyle(i[j][n]=
)||0,10);k-=3Dm;}this.setStyle(j,k+'px');}};})()});a.command=3Dfunction(i=
,j){this.uiItems=3D[];this.exec=3Dfunction(k){if(this.state=3D=3D0)return=
 false;if(this.editorFocus)i.focus();return =
j.exec.call(this,i,k)!=3D=3Dfalse;};e.extend(this,j,{modes:{wysiwyg:1},ed=
itorFocus:true,state:2});a.event.call(this);};a.command.prototype=3D{enab=
le:function(){var =
i=3Dthis;if(i.state=3D=3D0)i.setState(!i.preserveState||typeof =
i.previousState=3D=3D'undefined'?2:i.previousState);},disable:function(){=
this.setState(0);},setState:function(i){var =
j=3Dthis;if(j.state=3D=3Di)return =
false;j.previousState=3Dj.state;j.state=3Di;j.fire('state');return =
true;},toggleState:function(){var =
i=3Dthis;if(i.state=3D=3D2)i.setState(1);else =
if(i.state=3D=3D1)i.setState(2);}};a.event.implementOn(a.command.prototyp=
e,true);a.ENTER_P=3D1;a.ENTER_BR=3D2;a.ENTER_DIV=3D3;a.config=3D{customCo=
nfig:'config.js',autoUpdateElement:true,baseHref:'',contentsCss:a.basePat=
h+'contents.css',contentsLangDirection:'ui',contentsLanguage:'',language:=
'',defaultLanguage:'en',enterMode:1,forceEnterMode:false,shiftEnterMode:2=
,corePlugins:'',docType:'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 =
Transitional//EN" =
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',bodyId:'',bod=
yClass:'',fullPage:false,height:200,plugins:'about,a11yhelp,basicstyles,b=
idi,blockquote,button,clipboard,colorbutton,colordialog,contextmenu,dialo=
gadvtab,div,elementspath,enterkey,entities,filebrowser,find,flash,font,fo=
rmat,forms,horizontalrule,htmldataprocessor,image,indent,justify,keystrok=
es,link,list,liststyle,maximize,newpage,pagebreak,pastefromword,pastetext=
,popup,preview,print,removeformat,resize,save,scayt,smiley,showblocks,sho=
wborders,sourcearea,stylescombo,table,tabletools,specialchar,tab,template=
s,toolbar,undo,wysiwygarea,wsc',extraPlugins:'',removePlugins:'',protecte=
dSource:[],tabIndex:0,theme:'default',skin:'kama',width:'',baseFloatZInde=
x:10000};var =
i=3Da.config;a.focusManager=3Dfunction(j){if(j.focusManager)return =
j.focusManager;this.hasFocus=3Dfalse;this._=3D{editor:j};return =
this;};a.focusManager.prototype=3D{focus:function(){var =
k=3Dthis;if(k._.timer)clearTimeout(k._.timer);if(!k.hasFocus){if(a.curren=
tInstance)a.currentInstance.focusManager.forceBlur();var =
j=3Dk._.editor;j.container.getChild(1).addClass('cke_focus');k.hasFocus=3D=
true;j.fire('focus');}},blur:function(){var =
j=3Dthis;if(j._.timer)clearTimeout(j._.timer);j._.timer=3DsetTimeout(func=
tion(){delete j._.timer;
j.forceBlur();},100);},forceBlur:function(){if(this.hasFocus){var =
j=3Dthis._.editor;j.container.getChild(1).removeClass('cke_focus');this.h=
asFocus=3Dfalse;j.fire('blur');}}};(function(){var =
j=3D{};a.lang=3D{languages:{af:1,ar:1,bg:1,bn:1,bs:1,ca:1,cs:1,cy:1,da:1,=
de:1,el:1,'en-au':1,'en-ca':1,'en-gb':1,en:1,eo:1,es:1,et:1,eu:1,fa:1,fi:=
1,fo:1,'fr-ca':1,fr:1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,is:1,it:1,ja:1,km:1,k=
o:1,lt:1,lv:1,mn:1,ms:1,nb:1,nl:1,no:1,pl:1,'pt-br':1,pt:1,ro:1,ru:1,sk:1=
,sl:1,'sr-latn':1,sr:1,sv:1,th:1,tr:1,uk:1,vi:1,'zh-cn':1,zh:1},load:func=
tion(k,l,m){if(!k||!a.lang.languages[k])k=3Dthis.detect(l,k);if(!this[k])=
a.scriptLoader.load(a.getUrl('lang/'+k+'.js'),function(){m(k,this[k]);},t=
his);else m(k,this[k]);},detect:function(k,l){var =
m=3Dthis.languages;l=3Dl||navigator.userLanguage||navigator.language;var =
n=3Dl.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),o=3Dn[1],p=3Dn[2];if(=
m[o+'-'+p])o=3Do+'-'+p;else =
if(!m[o])o=3Dnull;a.lang.detect=3Do?function(){return =
o;}:function(q){return q;};return =
o||k;}};})();a.scriptLoader=3D(function(){var =
j=3D{},k=3D{};return{load:function(l,m,n,o,p){var q=3Dtypeof =
l=3D=3D'string';if(q)l=3D[l];if(!n)n=3Da;var =
r=3Dl.length,s=3D[],t=3D[],u=3Dfunction(z){if(m)if(q)m.call(n,z);else =
m.call(n,s,t);};if(r=3D=3D=3D0){u(true);return;}var =
v=3Dfunction(z,A){(A?s:t).push(z);if(--r<=3D0){p&&a.document.getDocumentE=
lement().removeStyle('cursor');u(A);}},w=3Dfunction(z,A){j[z]=3D1;var =
B=3Dk[z];delete k[z];for(var =
C=3D0;C<B.length;C++)B[C](z,A);},x=3Dfunction(z){if(o!=3D=3Dtrue&&j[z]){v=
(z,true);return;}var =
A=3Dk[z]||(k[z]=3D[]);A.push(v);if(A.length>1)return;var B=3Dnew =
h('script');B.setAttributes({type:'text/javascript',src:z});if(m)if(c)B.$=
.onreadystatechange=3Dfunction(){if(B.$.readyState=3D=3D'loaded'||B.$.rea=
dyState=3D=3D'complete'){B.$.onreadystatechange=3Dnull;w(z,true);}};else{=
B.$.onload=3Dfunction(){setTimeout(function(){w(z,true);},0);};B.$.onerro=
r=3Dfunction(){w(z,false);};}B.appendTo(a.document.getHead());};p&&a.docu=
ment.getDocumentElement().setStyle('cursor','wait');for(var =
y=3D0;y<r;y++)x(l[y]);},loadCode:function(l){var m=3Dnew =
h('script');m.setAttribute('type','text/javascript');m.appendText(l);m.ap=
pendTo(a.document.getHead());}};})();a.resourceManager=3Dfunction(j,k){va=
r =
l=3Dthis;l.basePath=3Dj;l.fileName=3Dk;l.registered=3D{};l.loaded=3D{};l.=
externals=3D{};l._=3D{waitingList:{}};};a.resourceManager.prototype=3D{ad=
d:function(j,k){if(this.registered[j])throw =
'[CKEDITOR.resourceManager.add] The resource name "'+j+'" is already =
registered.';a.fire(j+e.capitalize(this.fileName)+'Ready',this.registered=
[j]=3Dk||{});},get:function(j){return this.registered[j]||null;
},getPath:function(j){var k=3Dthis.externals[j];return =
a.getUrl(k&&k.dir||this.basePath+j+'/');},getFilePath:function(j){var =
k=3Dthis.externals[j];return a.getUrl(this.getPath(j)+(k&&typeof =
k.file=3D=3D'string'?k.file:this.fileName+'.js'));},addExternal:function(=
j,k,l){j=3Dj.split(',');for(var m=3D0;m<j.length;m++){var =
n=3Dj[m];this.externals[n]=3D{dir:k,file:l};}},load:function(j,k,l){if(!e=
.isArray(j))j=3Dj?[j]:[];var =
m=3Dthis.loaded,n=3Dthis.registered,o=3D[],p=3D{},q=3D{};for(var =
r=3D0;r<j.length;r++){var s=3Dj[r];if(!s)continue;if(!m[s]&&!n[s]){var =
t=3Dthis.getFilePath(s);o.push(t);if(!(t in =
p))p[t]=3D[];p[t].push(s);}else =
q[s]=3Dthis.get(s);}a.scriptLoader.load(o,function(u,v){if(v.length)throw=
 '[CKEDITOR.resourceManager.load] Resource name "'+p[v[0]].join(',')+'" =
was not found at "'+v[0]+'".';for(var w=3D0;w<u.length;w++){var =
x=3Dp[u[w]];for(var y=3D0;y<x.length;y++){var =
z=3Dx[y];q[z]=3Dthis.get(z);m[z]=3D1;}}k.call(l,q);},this);}};a.plugins=3D=
new a.resourceManager('plugins/','plugin');var =
j=3Da.plugins;j.load=3De.override(j.load,function(k){return =
function(l,m,n){var =
o=3D{},p=3Dfunction(q){k.call(this,q,function(r){e.extend(o,r);var =
s=3D[];for(var t in r){var u=3Dr[t],v=3Du&&u.requires;if(v)for(var =
w=3D0;w<v.length;w++){if(!o[v[w]])s.push(v[w]);}}if(s.length)p.call(this,=
s);else{for(t in =
o){u=3Do[t];if(u.onLoad&&!u.onLoad._called){u.onLoad();u.onLoad._called=3D=
1;}}if(m)m.call(n||window,o);}},this);};p.call(this,l);};});j.setLang=3Df=
unction(k,l,m){var =
n=3Dthis.get(k),o=3Dn.lang||(n.lang=3D{});o[l]=3Dm;};(function(){var =
k=3D{},l=3Dfunction(m,n){var =
o=3Dfunction(){p.removeAllListeners();k[m]=3D1;n();},p=3Dnew =
h('img');p.on('load',o);p.on('error',o);p.setAttribute('src',m);};a.image=
Cacher=3D{load:function(m,n){var =
o=3Dm.length,p=3Dfunction(){if(--o=3D=3D=3D0)n();};for(var =
q=3D0;q<m.length;q++){var r=3Dm[q];if(k[r])p();else =
l(r,p);}}};})();a.skins=3D(function(){var =
k=3D{},l=3D{},m=3D{},n=3Dfunction(o,p,q,r){var =
s=3Dk[p];if(!o.skin){o.skin=3Ds;if(s.init)s.init(o);}var =
t=3Dfunction(D){for(var =
E=3D0;E<D.length;E++)D[E]=3Da.getUrl(m[p]+D[E]);};function u(D,E){return =
D.replace(/url\s*\(([\s'"]*)(.*?)([\s"']*)\)/g,function(F,G,H,I){if(/^\/|=
^\w?:/.test(H))return F;else return =
'url('+E+G+H+I+')';});};if(!l[p]){var =
v=3Ds.preload;if(v&&v.length>0){t(v);a.imageCacher.load(v,function(){l[p]=
=3D1;n(o,p,q,r);});return;}l[p]=3D1;}q=3Ds[q];var =
w=3D!q||!!q._isLoaded;if(w)r&&r();else{var =
x=3Dq._pending||(q._pending=3D[]);x.push(r);if(x.length>1)return;var =
y=3D!q.css||!q.css.length,z=3D!q.js||!q.js.length,A=3Dfunction(){if(y&&z)=
{q._isLoaded=3D1;for(var =
D=3D0;D<x.length;D++){if(x[D])x[D]();}}};if(!y){var =
B=3Dq.css;if(e.isArray(B)){t(B);
for(var =
C=3D0;C<B.length;C++)a.document.appendStyleSheet(B[C]);}else{B=3Du(B,a.ge=
tUrl(m[p]));a.document.appendStyleText(B);}q.css=3DB;y=3D1;}if(!z){t(q.js=
);a.scriptLoader.load(q.js,function(){z=3D1;A();});}A();}};return{add:fun=
ction(o,p){k[o]=3Dp;p.skinPath=3Dm[o]||(m[o]=3Da.getUrl('skins/'+o+'/'));=
},load:function(o,p,q){var =
r=3Do.skinName,s=3Do.skinPath;if(k[r])n(o,r,p,q);else{m[r]=3Ds;a.scriptLo=
ader.load(a.getUrl(s+'skin.js'),function(){n(o,r,p,q);});}}};})();a.theme=
s=3Dnew =
a.resourceManager('themes/','theme');a.ui=3Dfunction(k){if(k.ui)return =
k.ui;this._=3D{handlers:{},items:{},editor:k};return this;};var =
k=3Da.ui;k.prototype=3D{add:function(l,m,n){this._.items[l]=3D{type:m,com=
mand:n.command||null,args:Array.prototype.slice.call(arguments,2)};},crea=
te:function(l){var q=3Dthis;var =
m=3Dq._.items[l],n=3Dm&&q._.handlers[m.type],o=3Dm&&m.command&&q._.editor=
.getCommand(m.command),p=3Dn&&n.create.apply(q,m.args);if(o)o.uiItems.pus=
h(p);return =
p;},addHandler:function(l,m){this._.handlers[l]=3Dm;}};(function(){var =
l=3D0,m=3Dfunction(){var x=3D'editor'+ ++l;return =
a.instances&&a.instances[x]?m():x;},n=3D{},o=3Dfunction(x){var =
y=3Dx.config.customConfig;if(!y)return false;y=3Da.getUrl(y);var =
z=3Dn[y]||(n[y]=3D{});if(z.fn){z.fn.call(x,x.config);if(a.getUrl(x.config=
.customConfig)=3D=3Dy||!o(x))x.fireOnce('customConfigLoaded');}else =
a.scriptLoader.load(y,function(){if(a.editorConfig)z.fn=3Da.editorConfig;=
else z.fn=3Dfunction(){};o(x);});return =
true;},p=3Dfunction(x,y){x.on('customConfigLoaded',function(){if(y){if(y.=
on)for(var z in y.on)x.on(z,y.on[z]);e.extend(x.config,y,true);delete =
x.config.on;}q(x);});if(y&&y.customConfig!=3Dundefined)x.config.customCon=
fig=3Dy.customConfig;if(!o(x))x.fireOnce('customConfigLoaded');},q=3Dfunc=
tion(x){var =
y=3Dx.config.skin.split(','),z=3Dy[0],A=3Da.getUrl(y[1]||'skins/'+z+'/');=
x.skinName=3Dz;x.skinPath=3DA;x.skinClass=3D'cke_skin_'+z;x.tabIndex=3Dx.=
config.tabIndex||x.element.getAttribute('tabindex')||0;x.fireOnce('config=
Loaded');t(x);},r=3Dfunction(x){a.lang.load(x.config.language,x.config.de=
faultLanguage,function(y,z){x.langCode=3Dy;x.lang=3De.prototypedCopy(z);i=
f(b.gecko&&b.version<10900&&x.lang.dir=3D=3D'rtl')x.lang.dir=3D'ltr';var =
A=3Dx.config;A.contentsLangDirection=3D=3D'ui'&&(A.contentsLangDirection=3D=
x.lang.dir);s(x);});},s=3Dfunction(x){var =
y=3Dx.config,z=3Dy.plugins,A=3Dy.extraPlugins,B=3Dy.removePlugins;if(A){v=
ar C=3Dnew =
RegExp('(?:^|,)(?:'+A.replace(/\s*,\s*/g,'|')+')(?=3D,|$)','g');z=3Dz.rep=
lace(C,'');z+=3D','+A;}if(B){C=3Dnew =
RegExp('(?:^|,)(?:'+B.replace(/\s*,\s*/g,'|')+')(?=3D,|$)','g');z=3Dz.rep=
lace(C,'');}j.load(z.split(','),function(D){var E=3D[],F=3D[],G=3D[];
x.plugins=3DD;for(var H in D){var =
I=3DD[H],J=3DI.lang,K=3Dj.getPath(H),L=3Dnull;I.path=3DK;if(J){L=3De.inde=
xOf(J,x.langCode)>=3D0?x.langCode:J[0];if(!I.lang[L])G.push(a.getUrl(K+'l=
ang/'+L+'.js'));else{e.extend(x.lang,I.lang[L]);L=3Dnull;}}F.push(L);E.pu=
sh(I);}a.scriptLoader.load(G,function(){var =
M=3D['beforeInit','init','afterInit'];for(var =
N=3D0;N<M.length;N++)for(var O=3D0;O<E.length;O++){var =
P=3DE[O];if(N=3D=3D=3D0&&F[O]&&P.lang)e.extend(x.lang,P.lang[F[O]]);if(P[=
M[N]])P[M[N]](x);}x.fire('pluginsLoaded');u(x);});});},t=3Dfunction(x){a.=
skins.load(x,'editor',function(){r(x);});},u=3Dfunction(x){var =
y=3Dx.config.theme;a.themes.load(y,function(){var =
z=3Dx.theme=3Da.themes.get(y);z.path=3Da.themes.getPath(y);z.build(x);if(=
x.config.autoUpdateElement)v(x);});},v=3Dfunction(x){var =
y=3Dx.element;if(x.elementMode=3D=3D1&&y.is('textarea')){var =
z=3Dy.$.form&&new h(y.$.form);if(z){function =
A(){x.updateElement();};z.on('submit',A);if(!z.$.submit.nodeName)z.$.subm=
it=3De.override(z.$.submit,function(B){return =
function(){x.updateElement();if(B.apply)B.apply(this,arguments);else =
B();};});x.on('destroy',function(){z.removeListener('submit',A);});}}};fu=
nction w(){var x,y=3Dthis._.commands,z=3Dthis.mode;for(var A in =
y){x=3Dy[A];x[x.startDisabled?'disable':x.modes[z]?'enable':'disable']();=
}};a.editor.prototype._init=3Dfunction(){var z=3Dthis;var =
x=3Dh.get(z._.element),y=3Dz._.instanceConfig;delete z._.element;delete =
z._.instanceConfig;z._.commands=3D{};z._.styles=3D[];z.element=3Dx;z.name=
=3Dx&&z.elementMode=3D=3D1&&(x.getId()||x.getNameAtt())||m();if(z.name =
in a.instances)throw '[CKEDITOR.editor] The instance "'+z.name+'" =
already exists.';z.config=3De.prototypedCopy(i);z.ui=3Dnew =
k(z);z.focusManager=3Dnew =
a.focusManager(z);a.fire('instanceCreated',null,z);z.on('mode',w,null,nul=
l,1);p(z,y);};})();e.extend(a.editor.prototype,{addCommand:function(l,m){=
return this._.commands[l]=3Dnew =
a.command(this,m);},addCss:function(l){this._.styles.push(l);},destroy:fu=
nction(l){var =
r=3Dthis;if(!l)r.updateElement();if(r.mode)r._.modes[r.mode].unload(r.get=
ThemeSpace('contents'));r.theme.destroy(r);var =
m,n=3D0,o,p,q;if(r.toolbox){m=3Dr.toolbox.toolbars;for(;n<m.length;n++){p=
=3Dm[n].items;for(o=3D0;o<p.length;o++){q=3Dp[o];if(q.clickFn)e.removeFun=
ction(q.clickFn);if(q.keyDownFn)e.removeFunction(q.keyDownFn);if(q.index)=
k.button._.instances[q.index]=3Dnull;}}}if(r.contextMenu)e.removeFunction=
(r.contextMenu._.functionId);if(r._.filebrowserFn)e.removeFunction(r._.fi=
lebrowserFn);r.fire('destroy');a.remove(r);a.fire('instanceDestroyed',nul=
l,r);},execCommand:function(l,m){var =
n=3Dthis.getCommand(l),o=3D{name:l,commandData:m,command:n};
if(n&&n.state!=3D0)if(this.fire('beforeCommandExec',o)!=3D=3Dtrue){o.retu=
rnValue=3Dn.exec(o.commandData);if(!n.async&&this.fire('afterCommandExec'=
,o)!=3D=3Dtrue)return o.returnValue;}return =
false;},getCommand:function(l){return =
this._.commands[l];},getData:function(){var =
n=3Dthis;n.fire('beforeGetData');var l=3Dn._.data;if(typeof =
l!=3D'string'){var =
m=3Dn.element;if(m&&n.elementMode=3D=3D1)l=3Dm.is('textarea')?m.getValue(=
):m.getHtml();else l=3D'';}l=3D{dataValue:l};n.fire('getData',l);return =
l.dataValue;},getSnapshot:function(){var =
l=3Dthis.fire('getSnapshot');if(typeof l!=3D'string'){var =
m=3Dthis.element;if(m&&this.elementMode=3D=3D1)l=3Dm.is('textarea')?m.get=
Value():m.getHtml();}return =
l;},loadSnapshot:function(l){this.fire('loadSnapshot',l);},setData:functi=
on(l,m){if(m)this.on('dataReady',function(o){o.removeListener();m.call(o.=
editor);});var =
n=3D{dataValue:l};this.fire('setData',n);this._.data=3Dn.dataValue;this.f=
ire('afterSetData',n);},insertHtml:function(l){this.fire('insertHtml',l);=
},insertElement:function(l){this.fire('insertElement',l);},checkDirty:fun=
ction(){return =
this.mayBeDirty&&this._.previousValue!=3D=3Dthis.getSnapshot();},resetDir=
ty:function(){if(this.mayBeDirty)this._.previousValue=3Dthis.getSnapshot(=
);},updateElement:function(){var n=3Dthis;var =
l=3Dn.element;if(l&&n.elementMode=3D=3D1){var =
m=3Dn.getData();if(n.config.htmlEncodeOutput)m=3De.htmlEncode(m);if(l.is(=
'textarea'))l.setValue(m);else =
l.setHtml(m);}}});a.on('loaded',function(){var =
l=3Da.editor._pending;if(l){delete a.editor._pending;for(var =
m=3D0;m<l.length;m++)l[m]._init();}});a.htmlParser=3Dfunction(){this._=3D=
{htmlPartsRegex:new =
RegExp("<(?:(?:\\/([^>]+)>)|(?:!--([\\S|\\s]*?)-->)|(?:([^\\s>]+)\\s*((?:=
(?:[^\"'>]+)|(?:\"[^\"]*\")|(?:'[^']*'))*)\\/?>))",'g')};};(function(){va=
r =
l=3D/([\w\-:.]+)(?:(?:\s*=3D\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))=
|(?=3D\s|$))/g,m=3D{checked:1,compact:1,declare:1,defer:1,disabled:1,isma=
p:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected=
:1};a.htmlParser.prototype=3D{onTagOpen:function(){},onTagClose:function(=
){},onText:function(){},onCDATA:function(){},onComment:function(){},parse=
:function(n){var A=3Dthis;var =
o,p,q=3D0,r;while(o=3DA._.htmlPartsRegex.exec(n)){var =
s=3Do.index;if(s>q){var t=3Dn.substring(q,s);if(r)r.push(t);else =
A.onText(t);}q=3DA._.htmlPartsRegex.lastIndex;if(p=3Do[1]){p=3Dp.toLowerC=
ase();if(r&&f.$cdata[p]){A.onCDATA(r.join(''));r=3Dnull;}if(!r){A.onTagCl=
ose(p);continue;}}if(r){r.push(o[0]);continue;}if(p=3Do[3]){p=3Dp.toLower=
Case();if(/=3D"/.test(p))continue;var =
u=3D{},v,w=3Do[4],x=3D!!(w&&w.charAt(w.length-1)=3D=3D'/');if(w)while(v=3D=
l.exec(w)){var y=3Dv[1].toLowerCase(),z=3Dv[2]||v[3]||v[4]||'';
if(!z&&m[y])u[y]=3Dy;else =
u[y]=3Dz;}A.onTagOpen(p,u,x);if(!r&&f.$cdata[p])r=3D[];continue;}if(p=3Do=
[2])A.onComment(p);}if(n.length>q)A.onText(n.substring(q,n.length));}};})=
();a.htmlParser.comment=3Dfunction(l){this.value=3Dl;this._=3D{isBlockLik=
e:false};};a.htmlParser.comment.prototype=3D{type:8,writeHtml:function(l,=
m){var =
n=3Dthis.value;if(m){if(!(n=3Dm.onComment(n,this)))return;if(typeof =
n!=3D'string'){n.parent=3Dthis.parent;n.writeHtml(l,m);return;}}l.comment=
(n);}};(function(){var l=3D/[\t\r\n =
]{2,}|[\t\r\n]/g;a.htmlParser.text=3Dfunction(m){this.value=3Dm;this._=3D=
{isBlockLike:false};};a.htmlParser.text.prototype=3D{type:3,writeHtml:fun=
ction(m,n){var =
o=3Dthis.value;if(n&&!(o=3Dn.onText(o,this)))return;m.text(o);}};})();(fu=
nction(){a.htmlParser.cdata=3Dfunction(l){this.value=3Dl;};a.htmlParser.c=
data.prototype=3D{type:3,writeHtml:function(l){l.write(this.value);}};})(=
);a.htmlParser.fragment=3Dfunction(){this.children=3D[];this.parent=3Dnul=
l;this._=3D{isBlockLike:true,hasInlineStarted:false};};(function(){var =
l=3D{colgroup:1,dd:1,dt:1,li:1,option:1,p:1,td:1,tfoot:1,th:1,thead:1,tr:=
1},m=3De.extend({table:1,ul:1,ol:1,dl:1},f.table,f.ul,f.ol,f.dl),n=3Df.$l=
ist,o=3Df.$listItem;a.htmlParser.fragment.fromHtml=3Dfunction(p,q){var =
r=3Dnew a.htmlParser(),s=3D[],t=3Dnew =
a.htmlParser.fragment(),u=3D[],v=3D[],w=3Dt,x=3Dfalse,y;function =
z(E){var F;if(u.length>0)for(var G=3D0;G<u.length;G++){var =
H=3Du[G],I=3DH.name,J=3Df[I],K=3Dw.name&&f[w.name];if((!K||K[I])&&(!E||!J=
||J[E]||!f[E])){if(!F){A();F=3D1;}H=3DH.clone();H.parent=3Dw;w=3DH;u.spli=
ce(G,1);G--;}}};function =
A(E){while(v.length-(E||0)>0)w.add(v.shift());};function =
B(E,F,G){F=3DF||w||t;if(q&&!F.type){var =
H,I;if(E.attributes&&(I=3DE.attributes._cke_real_element_type))H=3DI;else=
 H=3DE.name;if(H&&!(H in f.$body)&&!(H in f.$nonBodyContent)){var =
J=3Dw;w=3DF;r.onTagOpen(q,{});F=3Dw;if(G)w=3DJ;}}if(E._.isBlockLike&&E.na=
me!=3D'pre'){var =
K=3DE.children.length,L=3DE.children[K-1],M;if(L&&L.type=3D=3D3)if(!(M=3D=
e.rtrim(L.value)))E.children.length=3DK-1;else =
L.value=3DM;}F.add(E);if(E.returnPoint){w=3DE.returnPoint;delete =
E.returnPoint;}};r.onTagOpen=3Dfunction(E,F,G){var H=3Dnew =
a.htmlParser.element(E,F);if(H.isUnknown&&G)H.isEmpty=3Dtrue;if(f.$remove=
Empty[E]){u.push(H);return;}else if(E=3D=3D'pre')x=3Dtrue;else =
if(E=3D=3D'br'&&x){w.add(new =
a.htmlParser.text('\n'));return;}if(E=3D=3D'br'){v.push(H);return;}var =
I=3Dw.name,J=3DI&&(f[I]||(w._.isBlockLike?f.div:f.span));if(J&&!H.isUnkno=
wn&&!w.isUnknown&&!J[E]){var K=3Dfalse,L;if(E in n&&I in n){var =
M=3Dw.children,N=3DM[M.length-1];if(!(N&&N.name in o))B(N=3Dnew =
a.htmlParser.element('li'),w);y=3Dw,L=3DN;}else =
if(E=3D=3DI)B(w,w.parent);else{if(m[I]){if(!y)y=3Dw;
}else{B(w,w.parent,true);if(!l[I])u.unshift(w);}K=3Dtrue;}if(L)w=3DL;else=
 =
w=3Dw.returnPoint||w.parent;if(K){r.onTagOpen.apply(this,arguments);retur=
n;}}z(E);A();H.parent=3Dw;H.returnPoint=3Dy;y=3D0;if(H.isEmpty)B(H);else =
w=3DH;};r.onTagClose=3Dfunction(E){for(var =
F=3Du.length-1;F>=3D0;F--){if(E=3D=3Du[F].name){u.splice(F,1);return;}}va=
r =
G=3D[],H=3D[],I=3Dw;while(I.type&&I.name!=3DE){if(!I._.isBlockLike)H.unsh=
ift(I);G.push(I);I=3DI.parent;}if(I.type){for(F=3D0;F<G.length;F++){var =
J=3DG[F];B(J,J.parent);}w=3DI;if(w.name=3D=3D'pre')x=3Dfalse;if(I._.isBlo=
ckLike)A();B(I,I.parent);if(I=3D=3Dw)w=3Dw.parent;u=3Du.concat(H);}if(E=3D=
=3D'body')q=3Dfalse;};r.onText=3Dfunction(E){if(!w._.hasInlineStarted&&!x=
){E=3De.ltrim(E);if(E.length=3D=3D=3D0)return;}A();z();if(q&&(!w.type||w.=
name=3D=3D'body')&&e.trim(E))this.onTagOpen(q,{});if(!x)E=3DE.replace(/[\=
t\r\n ]{2,}|[\t\r\n]/g,' ');w.add(new =
a.htmlParser.text(E));};r.onCDATA=3Dfunction(E){w.add(new =
a.htmlParser.cdata(E));};r.onComment=3Dfunction(E){w.add(new =
a.htmlParser.comment(E));};r.parse(p);A(!c&&1);while(w.type){var =
C=3Dw.parent,D=3Dw;if(q&&(!C.type||C.name=3D=3D'body')&&!f.$body[D.name])=
{w=3DC;r.onTagOpen(q,{});C=3Dw;}C.add(D);w=3DC;}return =
t;};a.htmlParser.fragment.prototype=3D{add:function(p){var s=3Dthis;var =
q=3Ds.children.length,r=3Dq>0&&s.children[q-1]||null;if(r){if(p._.isBlock=
Like&&r.type=3D=3D3){r.value=3De.rtrim(r.value);if(r.value.length=3D=3D=3D=
0){s.children.pop();s.add(p);return;}}r.next=3Dp;}p.previous=3Dr;p.parent=
=3Ds;s.children.push(p);s._.hasInlineStarted=3Dp.type=3D=3D3||p.type=3D=3D=
1&&!p._.isBlockLike;},writeHtml:function(p,q){var =
r;this.filterChildren=3Dfunction(){var s=3Dnew =
a.htmlParser.basicWriter();this.writeChildrenHtml.call(this,s,q,true);var=
 t=3Ds.getHtml();this.children=3Dnew =
a.htmlParser.fragment.fromHtml(t).children;r=3D1;};!this.name&&q&&q.onFra=
gment(this);this.writeChildrenHtml(p,r?null:q);},writeChildrenHtml:functi=
on(p,q){for(var =
r=3D0;r<this.children.length;r++)this.children[r].writeHtml(p,q);}};})();=
a.htmlParser.element=3Dfunction(l,m){var =
r=3Dthis;r.name=3Dl;r.attributes=3Dm||(m=3D{});r.children=3D[];var =
n=3Dm._cke_real_element_type||l,o=3Df,p=3D!!(o.$nonBodyContent[n]||o.$blo=
ck[n]||o.$listItem[n]||o.$tableContent[n]||o.$nonEditable[n]||n=3D=3D'br'=
),q=3D!!o.$empty[l];r.isEmpty=3Dq;r.isUnknown=3D!o[l];r._=3D{isBlockLike:=
p,hasInlineStarted:q||!p};};(function(){var =
l=3Dfunction(m,n){m=3Dm[0];n=3Dn[0];return =
m<n?-1:m>n?1:0;};a.htmlParser.element.prototype=3D{type:1,add:a.htmlParse=
r.fragment.prototype.add,clone:function(){return new =
a.htmlParser.element(this.name,this.attributes);},writeHtml:function(m,n)=
{var =
o=3Dthis.attributes,p=3Dthis,q=3Dp.name,r,s,t,u;p.filterChildren=3Dfuncti=
on(){if(!u){var z=3Dnew a.htmlParser.basicWriter();
a.htmlParser.fragment.prototype.writeChildrenHtml.call(p,z,n);p.children=3D=
new =
a.htmlParser.fragment.fromHtml(z.getHtml()).children;u=3D1;}};if(n){for(;=
;){if(!(q=3Dn.onElementName(q)))return;p.name=3Dq;if(!(p=3Dn.onElement(p)=
))return;p.parent=3Dthis.parent;if(p.name=3D=3Dq)break;if(p.type!=3D1){p.=
writeHtml(m,n);return;}q=3Dp.name;if(!q){this.writeChildrenHtml.call(p,m,=
u?null:n);return;}}o=3Dp.attributes;}m.openTag(q,o);var v=3D[];for(var =
w=3D0;w<2;w++)for(r in o){s=3Dr;t=3Do[r];if(w=3D=3D1)v.push([r,t]);else =
if(n){for(;;){if(!(s=3Dn.onAttributeName(r))){delete o[r];break;}else =
if(s!=3Dr){delete o[r];r=3Ds;continue;}else =
break;}if(s)if((t=3Dn.onAttribute(p,s,t))=3D=3D=3Dfalse)delete o[s];else =
o[s]=3Dt;}}if(m.sortAttributes)v.sort(l);var =
x=3Dv.length;for(w=3D0;w<x;w++){var =
y=3Dv[w];m.attribute(y[0],y[1]);}m.openTagClose(q,p.isEmpty);if(!p.isEmpt=
y){this.writeChildrenHtml.call(p,m,u?null:n);m.closeTag(q);}},writeChildr=
enHtml:function(m,n){a.htmlParser.fragment.prototype.writeChildrenHtml.ap=
ply(this,arguments);}};})();(function(){a.htmlParser.filter=3De.createCla=
ss({$:function(q){this._=3D{elementNames:[],attributeNames:[],elements:{$=
length:0},attributes:{$length:0}};if(q)this.addRules(q,10);},proto:{addRu=
les:function(q,r){var s=3Dthis;if(typeof =
r!=3D'number')r=3D10;m(s._.elementNames,q.elementNames,r);m(s._.attribute=
Names,q.attributeNames,r);n(s._.elements,q.elements,r);n(s._.attributes,q=
.attributes,r);s._.text=3Do(s._.text,q.text,r)||s._.text;s._.comment=3Do(=
s._.comment,q.comment,r)||s._.comment;s._.root=3Do(s._.root,q.root,r)||s.=
_.root;},onElementName:function(q){return =
l(q,this._.elementNames);},onAttributeName:function(q){return =
l(q,this._.attributeNames);},onText:function(q){var =
r=3Dthis._.text;return r?r.filter(q):q;},onComment:function(q,r){var =
s=3Dthis._.comment;return s?s.filter(q,r):q;},onFragment:function(q){var =
r=3Dthis._.root;return r?r.filter(q):q;},onElement:function(q){var =
v=3Dthis;var =
r=3D[v._.elements['^'],v._.elements[q.name],v._.elements.$],s,t;for(var =
u=3D0;u<3;u++){s=3Dr[u];if(s){t=3Ds.filter(q,v);if(t=3D=3D=3Dfalse)return=
 null;if(t&&t!=3Dq)return =
v.onNode(t);if(q.parent&&!q.name)break;}}return =
q;},onNode:function(q){var r=3Dq.type;return =
r=3D=3D1?this.onElement(q):r=3D=3D3?new =
a.htmlParser.text(this.onText(q.value)):r=3D=3D8?new =
a.htmlParser.comment(this.onComment(q.value)):null;},onAttribute:function=
(q,r,s){var t=3Dthis._.attributes[r];if(t){var =
u=3Dt.filter(s,q,this);if(u=3D=3D=3Dfalse)return false;if(typeof =
u!=3D'undefined')return u;}return s;}}});function l(q,r){for(var =
s=3D0;q&&s<r.length;s++){var t=3Dr[s];q=3Dq.replace(t[0],t[1]);}return =
q;};function m(q,r,s){if(typeof r=3D=3D'function')r=3D[r];
var =
t,u,v=3Dq.length,w=3Dr&&r.length;if(w){for(t=3D0;t<v&&q[t].pri<s;t++){}fo=
r(u=3Dw-1;u>=3D0;u--){var =
x=3Dr[u];if(x){x.pri=3Ds;q.splice(t,0,x);}}}};function =
n(q,r,s){if(r)for(var t in r){var =
u=3Dq[t];q[t]=3Do(u,r[t],s);if(!u)q.$length++;}};function =
o(q,r,s){if(r){r.pri=3Ds;if(q){if(!q.splice){if(q.pri>s)q=3D[r,q];else =
q=3D[q,r];q.filter=3Dp;}else m(q,r,s);return q;}else{r.filter=3Dr;return =
r;}}};function p(q){var r=3Dq.type||q instanceof =
a.htmlParser.fragment;for(var s=3D0;s<this.length;s++){if(r)var =
t=3Dq.type,u=3Dq.name;var =
v=3Dthis[s],w=3Dv.apply(window,arguments);if(w=3D=3D=3Dfalse)return =
w;if(r){if(w&&(w.name!=3Du||w.type!=3Dt))return w;}else if(typeof =
w!=3D'string')return w;w!=3Dundefined&&(q=3Dw);}return =
q;};})();a.htmlParser.basicWriter=3De.createClass({$:function(){this._=3D=
{output:[]};},proto:{openTag:function(l,m){this._.output.push('<',l);},op=
enTagClose:function(l,m){if(m)this._.output.push(' />');else =
this._.output.push('>');},attribute:function(l,m){if(typeof =
m=3D=3D'string')m=3De.htmlEncodeAttr(m);this._.output.push(' =
',l,'=3D"',m,'"');},closeTag:function(l){this._.output.push('</',l,'>');}=
,text:function(l){this._.output.push(l);},comment:function(l){this._.outp=
ut.push('<!--',l,'-->');},write:function(l){this._.output.push(l);},reset=
:function(){this._.output=3D[];this._.indent=3Dfalse;},getHtml:function(l=
){var m=3Dthis._.output.join('');if(l)this.reset();return m;}}});delete =
a.loadFullCore;a.instances=3D{};a.document=3Dnew =
g(document);a.add=3Dfunction(l){a.instances[l.name]=3Dl;l.on('focus',func=
tion(){if(a.currentInstance!=3Dl){a.currentInstance=3Dl;a.fire('currentIn=
stance');}});l.on('blur',function(){if(a.currentInstance=3D=3Dl){a.curren=
tInstance=3Dnull;a.fire('currentInstance');}});};a.remove=3Dfunction(l){d=
elete =
a.instances[l.name];};a.on('instanceDestroyed',function(){if(e.isEmpty(th=
is.instances))a.fire('reset');});a.TRISTATE_ON=3D1;a.TRISTATE_OFF=3D2;a.T=
RISTATE_DISABLED=3D0;d.comment=3De.createClass({base:d.node,$:function(l,=
m){if(typeof =
l=3D=3D'string')l=3D(m?m.$:document).createComment(l);this.base(l);},prot=
o:{type:8,getOuterHtml:function(){return =
'<!--'+this.$.nodeValue+'-->';}}});(function(){var =
l=3D{address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,=
li:1,dt:1,dd:1},m=3D{body:1,div:1,table:1,tbody:1,tr:1,td:1,th:1,caption:=
1,form:1},n=3Dfunction(o){var p=3Do.getChildren();for(var =
q=3D0,r=3Dp.count();q<r;q++){var =
s=3Dp.getItem(q);if(s.type=3D=3D1&&f.$block[s.getName()])return =
true;}return false;};d.elementPath=3Dfunction(o){var u=3Dthis;var =
p=3Dnull,q=3Dnull,r=3D[],s=3Do;while(s){if(s.type=3D=3D1){if(!u.lastEleme=
nt)u.lastElement=3Ds;var =
t=3Ds.getName();if(c&&s.$.scopeName!=3D'HTML')t=3Ds.$.scopeName.toLowerCa=
se()+':'+t;
if(!q){if(!p&&l[t])p=3Ds;if(m[t])if(!p&&t=3D=3D'div'&&!n(s))p=3Ds;else =
q=3Ds;}r.push(s);if(t=3D=3D'body')break;}s=3Ds.getParent();}u.block=3Dp;u=
.blockLimit=3Dq;u.elements=3Dr;};})();d.elementPath.prototype=3D{compare:=
function(l){var =
m=3Dthis.elements,n=3Dl&&l.elements;if(!n||m.length!=3Dn.length)return =
false;for(var o=3D0;o<m.length;o++){if(!m[o].equals(n[o]))return =
false;}return true;},contains:function(l){var m=3Dthis.elements;for(var =
n=3D0;n<m.length;n++){if(m[n].getName() in l)return m[n];}return =
null;}};d.text=3Dfunction(l,m){if(typeof =
l=3D=3D'string')l=3D(m?m.$:document).createTextNode(l);this.$=3Dl;};d.tex=
t.prototype=3Dnew =
d.node();e.extend(d.text.prototype,{type:3,getLength:function(){return =
this.$.nodeValue.length;},getText:function(){return =
this.$.nodeValue;},split:function(l){var =
q=3Dthis;if(c&&l=3D=3Dq.getLength()){var =
m=3Dq.getDocument().createText('');m.insertAfter(q);return m;}var =
n=3Dq.getDocument(),o=3Dnew d.text(q.$.splitText(l),n);if(b.ie8){var =
p=3Dnew d.text('',n);p.insertAfter(o);p.remove();}return =
o;},substring:function(l,m){if(typeof m!=3D'number')return =
this.$.nodeValue.substr(l);else return =
this.$.nodeValue.substring(l,m);}});d.documentFragment=3Dfunction(l){l=3D=
l||a.document;this.$=3Dl.$.createDocumentFragment();};e.extend(d.document=
Fragment.prototype,h.prototype,{type:11,insertAfterNode:function(l){l=3Dl=
.$;l.parentNode.insertBefore(this.$,l.nextSibling);}},true,{append:1,appe=
ndBogus:1,getFirst:1,getLast:1,appendTo:1,moveChildren:1,insertBefore:1,i=
nsertAfterNode:1,replace:1,trim:1,type:1,ltrim:1,rtrim:1,getDocument:1,ge=
tChildCount:1,getChild:1,getChildren:1});(function(){function =
l(t,u){if(this._.end)return null;var =
v,w=3Dthis.range,x,y=3Dthis.guard,z=3Dthis.type,A=3Dt?'getPreviousSourceN=
ode':'getNextSourceNode';if(!this._.start){this._.start=3D1;w.trim();if(w=
.collapsed){this.end();return null;}}if(!t&&!this._.guardLTR){var =
B=3Dw.endContainer,C=3DB.getChild(w.endOffset);this._.guardLTR=3Dfunction=
(G,H){return(!H||!B.equals(G))&&(!C||!G.equals(C))&&(G.type!=3D1||!H||G.g=
etName()!=3D'body');};}if(t&&!this._.guardRTL){var =
D=3Dw.startContainer,E=3Dw.startOffset>0&&D.getChild(w.startOffset-1);thi=
s._.guardRTL=3Dfunction(G,H){return(!H||!D.equals(G))&&(!E||!G.equals(E))=
&&(G.type!=3D1||!H||G.getName()!=3D'body');};}var =
F=3Dt?this._.guardRTL:this._.guardLTR;if(y)x=3Dfunction(G,H){if(F(G,H)=3D=
=3D=3Dfalse)return false;return y(G,H);};else =
x=3DF;if(this.current)v=3Dthis.current[A](false,z,x);else =
if(t){v=3Dw.endContainer;if(w.endOffset>0){v=3Dv.getChild(w.endOffset-1);=
if(x(v)=3D=3D=3Dfalse)v=3Dnull;}else =
v=3Dx(v,true)=3D=3D=3Dfalse?null:v.getPreviousSourceNode(true,z,x);}else{=
v=3Dw.startContainer;
v=3Dv.getChild(w.startOffset);if(v){if(x(v)=3D=3D=3Dfalse)v=3Dnull;}else =
v=3Dx(w.startContainer,true)=3D=3D=3Dfalse?null:w.startContainer.getNextS=
ourceNode(true,z,x);}while(v&&!this._.end){this.current=3Dv;if(!this.eval=
uator||this.evaluator(v)!=3D=3Dfalse){if(!u)return v;}else =
if(u&&this.evaluator)return false;v=3Dv[A](false,z,x);}this.end();return =
this.current=3Dnull;};function m(t){var =
u,v=3Dnull;while(u=3Dl.call(this,t))v=3Du;return =
v;};d.walker=3De.createClass({$:function(t){this.range=3Dt;this._=3D{};},=
proto:{end:function(){this._.end=3D1;},next:function(){return =
l.call(this);},previous:function(){return =
l.call(this,true);},checkForward:function(){return =
l.call(this,false,true)!=3D=3Dfalse;},checkBackward:function(){return =
l.call(this,true,true)!=3D=3Dfalse;},lastForward:function(){return =
m.call(this);},lastBackward:function(){return =
m.call(this,true);},reset:function(){delete =
this.current;this._=3D{};}}});var =
n=3D{block:1,'list-item':1,table:1,'table-row-group':1,'table-header-grou=
p':1,'table-footer-group':1,'table-row':1,'table-column-group':1,'table-c=
olumn':1,'table-cell':1,'table-caption':1},o=3D{hr:1};h.prototype.isBlock=
Boundary=3Dfunction(t){var u=3De.extend({},o,t||{});return =
n[this.getComputedStyle('display')]||u[this.getName()];};d.walker.blockBo=
undary=3Dfunction(t){return =
function(u,v){return!(u.type=3D=3D1&&u.isBlockBoundary(t));};};d.walker.l=
istItemBoundary=3Dfunction(){return =
this.blockBoundary({br:1});};d.walker.bookmark=3Dfunction(t,u){function =
v(w){return =
w&&w.getName&&w.getName()=3D=3D'span'&&w.hasAttribute('_cke_bookmark');};=
return function(w){var =
x,y;x=3Dw&&!w.getName&&(y=3Dw.getParent())&&v(y);x=3Dt?x:x||v(w);return =
u^x;};};d.walker.whitespaces=3Dfunction(t){return function(u){var =
v=3Du&&u.type=3D=3D3&&!e.trim(u.getText());return =
t^v;};};d.walker.invisible=3Dfunction(t){var =
u=3Dd.walker.whitespaces();return function(v){var =
w=3Du(v)||v.is&&!v.$.offsetHeight;return t^w;};};var p=3D/^[\t\r\n =
]*(?:&nbsp;|\xa0)$/,q=3Dd.walker.whitespaces(true),r=3Dd.walker.bookmark(=
false,true),s=3Dfunction(t){return =
r(t)&&q(t);};h.prototype.getBogus=3Dfunction(){var =
t=3Dthis.getLast(s);if(t&&(!c?t.is&&t.is('br'):t.getText&&p.test(t.getTex=
t())))return t;return false;};})();d.range=3Dfunction(l){var =
m=3Dthis;m.startContainer=3Dnull;m.startOffset=3Dnull;m.endContainer=3Dnu=
ll;m.endOffset=3Dnull;m.collapsed=3Dtrue;m.document=3Dl;};(function(){var=
 =
l=3Dfunction(t){t.collapsed=3Dt.startContainer&&t.endContainer&&t.startCo=
ntainer.equals(t.endContainer)&&t.startOffset=3D=3Dt.endOffset;},m=3Dfunc=
tion(t,u,v){t.optimizeBookmark();var =
w=3Dt.startContainer,x=3Dt.endContainer,y=3Dt.startOffset,z=3Dt.endOffset=
,A,B;
if(x.type=3D=3D3)x=3Dx.split(z);else =
if(x.getChildCount()>0)if(z>=3Dx.getChildCount()){x=3Dx.append(t.document=
.createText(''));B=3Dtrue;}else =
x=3Dx.getChild(z);if(w.type=3D=3D3){w.split(y);if(w.equals(x))x=3Dw.getNe=
xt();}else =
if(!y){w=3Dw.getFirst().insertBeforeMe(t.document.createText(''));A=3Dtru=
e;}else =
if(y>=3Dw.getChildCount()){w=3Dw.append(t.document.createText(''));A=3Dtr=
ue;}else w=3Dw.getChild(y).getPrevious();var =
C=3Dw.getParents(),D=3Dx.getParents(),E,F,G;for(E=3D0;E<C.length;E++){F=3D=
C[E];G=3DD[E];if(!F.equals(G))break;}var H=3Dv,I,J,K,L;for(var =
M=3DE;M<C.length;M++){I=3DC[M];if(H&&!I.equals(w))J=3DH.append(I.clone())=
;K=3DI.getNext();while(K){if(K.equals(D[M])||K.equals(x))break;L=3DK.getN=
ext();if(u=3D=3D2)H.append(K.clone(true));else{K.remove();if(u=3D=3D1)H.a=
ppend(K);}K=3DL;}if(H)H=3DJ;}H=3Dv;for(var =
N=3DE;N<D.length;N++){I=3DD[N];if(u>0&&!I.equals(x))J=3DH.append(I.clone(=
));if(!C[N]||I.$.parentNode!=3DC[N].$.parentNode){K=3DI.getPrevious();whi=
le(K){if(K.equals(C[N])||K.equals(w))break;L=3DK.getPrevious();if(u=3D=3D=
2)H.$.insertBefore(K.$.cloneNode(true),H.$.firstChild);else{K.remove();if=
(u=3D=3D1)H.$.insertBefore(K.$,H.$.firstChild);}K=3DL;}}if(H)H=3DJ;}if(u=3D=
=3D2){var =
O=3Dt.startContainer;if(O.type=3D=3D3){O.$.data+=3DO.$.nextSibling.data;O=
.$.parentNode.removeChild(O.$.nextSibling);}var =
P=3Dt.endContainer;if(P.type=3D=3D3&&P.$.nextSibling){P.$.data+=3DP.$.nex=
tSibling.data;P.$.parentNode.removeChild(P.$.nextSibling);}}else{if(F&&G&=
&(w.$.parentNode!=3DF.$.parentNode||x.$.parentNode!=3DG.$.parentNode)){va=
r =
Q=3DG.getIndex();if(A&&G.$.parentNode=3D=3Dw.$.parentNode)Q--;t.setStart(=
G.getParent(),Q);}t.collapse(true);}if(A)w.remove();if(B&&x.$.parentNode)=
x.remove();},n=3D{abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,df=
n:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:=
1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1};function o(t){var =
u=3Dfalse,v=3Dd.walker.bookmark(true);return function(w){if(v(w))return =
true;if(w.type=3D=3D3){if(e.trim(w.getText()).length)return false;}else =
if(w.type=3D=3D1)if(!n[w.getName()])if(!t&&!c&&w.getName()=3D=3D'br'&&!u)=
u=3Dtrue;else return false;return true;};};function p(t){return =
t.type!=3D3&&t.getName() in =
f.$removeEmpty||!e.trim(t.getText())||t.getParent().hasAttribute('_cke_bo=
okmark');};var q=3Dnew d.walker.whitespaces(),r=3Dnew =
d.walker.bookmark();function =
s(t){return!q(t)&&!r(t);};d.range.prototype=3D{clone:function(){var =
u=3Dthis;var t=3Dnew =
d.range(u.document);t.startContainer=3Du.startContainer;t.startOffset=3Du=
.startOffset;t.endContainer=3Du.endContainer;t.endOffset=3Du.endOffset;t.=
collapsed=3Du.collapsed;return t;},collapse:function(t){var =
u=3Dthis;if(t){u.endContainer=3Du.startContainer;
u.endOffset=3Du.startOffset;}else{u.startContainer=3Du.endContainer;u.sta=
rtOffset=3Du.endOffset;}u.collapsed=3Dtrue;},cloneContents:function(){var=
 t=3Dnew =
d.documentFragment(this.document);if(!this.collapsed)m(this,2,t);return =
t;},deleteContents:function(){if(this.collapsed)return;m(this,0);},extrac=
tContents:function(){var t=3Dnew =
d.documentFragment(this.document);if(!this.collapsed)m(this,1,t);return =
t;},createBookmark:function(t){var z=3Dthis;var =
u,v,w,x,y=3Dz.collapsed;u=3Dz.document.createElement('span');u.setAttribu=
te('_cke_bookmark',1);u.setStyle('display','none');u.setHtml('&nbsp;');if=
(t){w=3D'cke_bm_'+e.getNextNumber();u.setAttribute('id',w+'S');}if(!y){v=3D=
u.clone();v.setHtml('&nbsp;');if(t)v.setAttribute('id',w+'E');x=3Dz.clone=
();x.collapse();x.insertNode(v);}x=3Dz.clone();x.collapse(true);x.insertN=
ode(u);if(v){z.setStartAfter(u);z.setEndBefore(v);}else =
z.moveToPosition(u,4);return{startNode:t?w+'S':u,endNode:t?w+'E':v,serial=
izable:t,collapsed:y};},createBookmark2:function(t){var B=3Dthis;var =
u=3DB.startContainer,v=3DB.endContainer,w=3DB.startOffset,x=3DB.endOffset=
,y=3DB.collapsed,z,A;if(!u||!v)return{start:0,end:0};if(t){if(u.type=3D=3D=
1){z=3Du.getChild(w);if(z&&z.type=3D=3D3&&w>0&&z.getPrevious().type=3D=3D=
3){u=3Dz;w=3D0;}}while(u.type=3D=3D3&&(A=3Du.getPrevious())&&A.type=3D=3D=
3){u=3DA;w+=3DA.getLength();}if(!y){if(v.type=3D=3D1){z=3Dv.getChild(x);i=
f(z&&z.type=3D=3D3&&x>0&&z.getPrevious().type=3D=3D3){v=3Dz;x=3D0;}}while=
(v.type=3D=3D3&&(A=3Dv.getPrevious())&&A.type=3D=3D3){v=3DA;x+=3DA.getLen=
gth();}}}return{start:u.getAddress(t),end:y?null:v.getAddress(t),startOff=
set:w,endOffset:x,normalized:t,collapsed:y,is2:true};},moveToBookmark:fun=
ction(t){var B=3Dthis;if(t.is2){var =
u=3DB.document.getByAddress(t.start,t.normalized),v=3Dt.startOffset,w=3Dt=
.end&&B.document.getByAddress(t.end,t.normalized),x=3Dt.endOffset;B.setSt=
art(u,v);if(w)B.setEnd(w,x);else B.collapse(true);}else{var =
y=3Dt.serializable,z=3Dy?B.document.getById(t.startNode):t.startNode,A=3D=
y?B.document.getById(t.endNode):t.endNode;B.setStartBefore(z);z.remove();=
if(A){B.setEndBefore(A);A.remove();}else =
B.collapse(true);}},getBoundaryNodes:function(){var y=3Dthis;var =
t=3Dy.startContainer,u=3Dy.endContainer,v=3Dy.startOffset,w=3Dy.endOffset=
,x;if(t.type=3D=3D1){x=3Dt.getChildCount();if(x>v)t=3Dt.getChild(v);else =
if(x<1)t=3Dt.getPreviousSourceNode();else{t=3Dt.$;while(t.lastChild)t=3Dt=
.lastChild;t=3Dnew =
d.node(t);t=3Dt.getNextSourceNode()||t;}}if(u.type=3D=3D1){x=3Du.getChild=
Count();if(x>w)u=3Du.getChild(w).getPreviousSourceNode(true);else =
if(x<1)u=3Du.getPreviousSourceNode();else{u=3Du.$;while(u.lastChild)u=3Du=
.lastChild;u=3Dnew d.node(u);}}if(t.getPosition(u)&2)t=3Du;
return{startNode:t,endNode:u};},getCommonAncestor:function(t,u){var =
y=3Dthis;var =
v=3Dy.startContainer,w=3Dy.endContainer,x;if(v.equals(w)){if(t&&v.type=3D=
=3D1&&y.startOffset=3D=3Dy.endOffset-1)x=3Dv.getChild(y.startOffset);else=
 x=3Dv;}else x=3Dv.getCommonAncestor(w);return =
u&&!x.is?x.getParent():x;},optimize:function(){var v=3Dthis;var =
t=3Dv.startContainer,u=3Dv.startOffset;if(t.type!=3D1)if(!u)v.setStartBef=
ore(t);else =
if(u>=3Dt.getLength())v.setStartAfter(t);t=3Dv.endContainer;u=3Dv.endOffs=
et;if(t.type!=3D1)if(!u)v.setEndBefore(t);else =
if(u>=3Dt.getLength())v.setEndAfter(t);},optimizeBookmark:function(){var =
v=3Dthis;var =
t=3Dv.startContainer,u=3Dv.endContainer;if(t.is&&t.is('span')&&t.hasAttri=
bute('_cke_bookmark'))v.setStartAt(t,3);if(u&&u.is&&u.is('span')&&u.hasAt=
tribute('_cke_bookmark'))v.setEndAt(u,4);},trim:function(t,u){var =
B=3Dthis;var =
v=3DB.startContainer,w=3DB.startOffset,x=3DB.collapsed;if((!t||x)&&v&&v.t=
ype=3D=3D3){if(!w){w=3Dv.getIndex();v=3Dv.getParent();}else =
if(w>=3Dv.getLength()){w=3Dv.getIndex()+1;v=3Dv.getParent();}else{var =
y=3Dv.split(w);w=3Dv.getIndex()+1;v=3Dv.getParent();if(B.startContainer.e=
quals(B.endContainer))B.setEnd(y,B.endOffset-B.startOffset);else =
if(v.equals(B.endContainer))B.endOffset+=3D1;}B.setStart(v,w);if(x){B.col=
lapse(true);return;}}var =
z=3DB.endContainer,A=3DB.endOffset;if(!(u||x)&&z&&z.type=3D=3D3){if(!A){A=
=3Dz.getIndex();z=3Dz.getParent();}else =
if(A>=3Dz.getLength()){A=3Dz.getIndex()+1;z=3Dz.getParent();}else{z.split=
(A);A=3Dz.getIndex()+1;z=3Dz.getParent();}B.setEnd(z,A);}},enlarge:functi=
on(t){switch(t){case 1:if(this.collapsed)return;var =
u=3Dthis.getCommonAncestor(),v=3Dthis.document.getBody(),w,x,y,z,A,B=3Dfa=
lse,C,D,E=3Dthis.startContainer,F=3Dthis.startOffset;if(E.type=3D=3D3){if=
(F){E=3D!e.trim(E.substring(0,F)).length&&E;B=3D!!E;}if(E)if(!(z=3DE.getP=
revious()))y=3DE.getParent();}else{if(F)z=3DE.getChild(F-1)||E.getLast();=
if(!z)y=3DE;}while(y||z){if(y&&!z){if(!A&&y.equals(u))A=3Dtrue;if(!v.cont=
ains(y))break;if(!B||y.getComputedStyle('display')!=3D'inline'){B=3Dfalse=
;if(A)w=3Dy;else =
this.setStartBefore(y);}z=3Dy.getPrevious();}while(z){C=3Dfalse;if(z.type=
=3D=3D3){D=3Dz.getText();if(/[^\s\ufeff]/.test(D))z=3Dnull;C=3D/[\s\ufeff=
]$/.test(D);}else =
if(z.$.offsetWidth>0&&!z.getAttribute('_cke_bookmark'))if(B&&f.$removeEmp=
ty[z.getName()]){D=3Dz.getText();if(/[^\s\ufeff]/.test(D))z=3Dnull;else{v=
ar G=3Dz.$.all||z.$.getElementsByTagName('*');for(var =
H=3D0,I;I=3DG[H++];){if(!f.$removeEmpty[I.nodeName.toLowerCase()]){z=3Dnu=
ll;break;}}}if(z)C=3D!!D.length;}else =
z=3Dnull;if(C)if(B){if(A)w=3Dy;else if(y)this.setStartBefore(y);}else =
B=3Dtrue;if(z){var J=3Dz.getPrevious();if(!y&&!J){y=3Dz;z=3Dnull;break;
}z=3DJ;}else =
y=3Dnull;}if(y)y=3Dy.getParent();}E=3Dthis.endContainer;F=3Dthis.endOffse=
t;y=3Dz=3Dnull;A=3DB=3Dfalse;if(E.type=3D=3D3){E=3D!e.trim(E.substring(F)=
).length&&E;B=3D!(E&&E.getLength());if(E)if(!(z=3DE.getNext()))y=3DE.getP=
arent();}else{z=3DE.getChild(F);if(!z)y=3DE;}while(y||z){if(y&&!z){if(!A&=
&y.equals(u))A=3Dtrue;if(!v.contains(y))break;if(!B||y.getComputedStyle('=
display')!=3D'inline'){B=3Dfalse;if(A)x=3Dy;else =
if(y)this.setEndAfter(y);}z=3Dy.getNext();}while(z){C=3Dfalse;if(z.type=3D=
=3D3){D=3Dz.getText();if(/[^\s\ufeff]/.test(D))z=3Dnull;C=3D/^[\s\ufeff]/=
.test(D);}else =
if(z.$.offsetWidth>0&&!z.getAttribute('_cke_bookmark'))if(B&&f.$removeEmp=
ty[z.getName()]){D=3Dz.getText();if(/[^\s\ufeff]/.test(D))z=3Dnull;else{G=
=3Dz.$.all||z.$.getElementsByTagName('*');for(H=3D0;I=3DG[H++];){if(!f.$r=
emoveEmpty[I.nodeName.toLowerCase()]){z=3Dnull;break;}}}if(z)C=3D!!D.leng=
th;}else z=3Dnull;if(C)if(B)if(A)x=3Dy;else =
this.setEndAfter(y);if(z){J=3Dz.getNext();if(!y&&!J){y=3Dz;z=3Dnull;break=
;}z=3DJ;}else =
y=3Dnull;}if(y)y=3Dy.getParent();}if(w&&x){u=3Dw.contains(x)?x:w;this.set=
StartBefore(u);this.setEndAfter(u);}break;case 2:case 3:var K=3Dnew =
d.range(this.document);v=3Dthis.document.getBody();K.setStartAt(v,1);K.se=
tEnd(this.startContainer,this.startOffset);var L=3Dnew =
d.walker(K),M,N,O=3Dd.walker.blockBoundary(t=3D=3D3?{br:1}:null),P=3Dfunc=
tion(R){var S=3DO(R);if(!S)M=3DR;return S;},Q=3Dfunction(R){var =
S=3DP(R);if(!S&&R.is&&R.is('br'))N=3DR;return =
S;};L.guard=3DP;y=3DL.lastBackward();M=3DM||v;this.setStartAt(M,!M.is('br=
')&&(!y&&this.checkStartOfBlock()||y&&M.contains(y))?1:4);K=3Dthis.clone(=
);K.collapse();K.setEndAt(v,2);L=3Dnew =
d.walker(K);L.guard=3Dt=3D=3D3?Q:P;M=3Dnull;y=3DL.lastForward();M=3DM||v;=
this.setEndAt(M,!y&&this.checkEndOfBlock()||y&&M.contains(y)?2:3);if(N)th=
is.setEndAfter(N);}},shrink:function(t,u){if(!this.collapsed){t=3Dt||2;va=
r =
v=3Dthis.clone(),w=3Dthis.startContainer,x=3Dthis.endContainer,y=3Dthis.s=
tartOffset,z=3Dthis.endOffset,A=3Dthis.collapsed,B=3D1,C=3D1;if(w&&w.type=
=3D=3D3)if(!y)v.setStartBefore(w);else =
if(y>=3Dw.getLength())v.setStartAfter(w);else{v.setStartBefore(w);B=3D0;}=
if(x&&x.type=3D=3D3)if(!z)v.setEndBefore(x);else =
if(z>=3Dx.getLength())v.setEndAfter(x);else{v.setEndAfter(x);C=3D0;}var =
D=3Dnew d.walker(v);D.evaluator=3Dfunction(H){return =
H.type=3D=3D(t=3D=3D1?1:3);};var =
E;D.guard=3Dfunction(H,I){if(t=3D=3D1&&H.type=3D=3D3)return =
false;if(I&&H.equals(E))return false;if(!I&&H.type=3D=3D1)E=3DH;return =
true;};if(B){var =
F=3DD[t=3D=3D1?'lastForward':'next']();F&&this.setStartAt(F,u?1:3);}if(C)=
{D.reset();var =
G=3DD[t=3D=3D1?'lastBackward':'previous']();G&&this.setEndAt(G,u?2:4);}re=
turn!!(B||C);}},insertNode:function(t){var =
x=3Dthis;x.optimizeBookmark();
x.trim(false,true);var =
u=3Dx.startContainer,v=3Dx.startOffset,w=3Du.getChild(v);if(w)t.insertBef=
ore(w);else =
u.append(t);if(t.getParent().equals(x.endContainer))x.endOffset++;x.setSt=
artBefore(t);},moveToPosition:function(t,u){this.setStartAt(t,u);this.col=
lapse(true);},selectNodeContents:function(t){this.setStart(t,0);this.setE=
nd(t,t.type=3D=3D3?t.getLength():t.getChildCount());},setStart:function(t=
,u){var =
v=3Dthis;if(t.type=3D=3D1&&f.$empty[t.getName()])t=3Dt.getParent(),u=3Dt.=
getIndex();v.startContainer=3Dt;v.startOffset=3Du;if(!v.endContainer){v.e=
ndContainer=3Dt;v.endOffset=3Du;}l(v);},setEnd:function(t,u){var =
v=3Dthis;if(t.type=3D=3D1&&f.$empty[t.getName()])t=3Dt.getParent(),u=3Dt.=
getIndex()+1;v.endContainer=3Dt;v.endOffset=3Du;if(!v.startContainer){v.s=
tartContainer=3Dt;v.startOffset=3Du;}l(v);},setStartAfter:function(t){thi=
s.setStart(t.getParent(),t.getIndex()+1);},setStartBefore:function(t){thi=
s.setStart(t.getParent(),t.getIndex());},setEndAfter:function(t){this.set=
End(t.getParent(),t.getIndex()+1);},setEndBefore:function(t){this.setEnd(=
t.getParent(),t.getIndex());},setStartAt:function(t,u){var =
v=3Dthis;switch(u){case 1:v.setStart(t,0);break;case =
2:if(t.type=3D=3D3)v.setStart(t,t.getLength());else =
v.setStart(t,t.getChildCount());break;case =
3:v.setStartBefore(t);break;case =
4:v.setStartAfter(t);}l(v);},setEndAt:function(t,u){var =
v=3Dthis;switch(u){case 1:v.setEnd(t,0);break;case =
2:if(t.type=3D=3D3)v.setEnd(t,t.getLength());else =
v.setEnd(t,t.getChildCount());break;case 3:v.setEndBefore(t);break;case =
4:v.setEndAfter(t);}l(v);},fixBlock:function(t,u){var x=3Dthis;var =
v=3Dx.createBookmark(),w=3Dx.document.createElement(u);x.collapse(t);x.en=
large(2);x.extractContents().appendTo(w);w.trim();if(!c)w.appendBogus();x=
.insertNode(w);x.moveToBookmark(v);return w;},splitBlock:function(t){var =
D=3Dthis;var u=3Dnew d.elementPath(D.startContainer),v=3Dnew =
d.elementPath(D.endContainer),w=3Du.blockLimit,x=3Dv.blockLimit,y=3Du.blo=
ck,z=3Dv.block,A=3Dnull;if(!w.equals(x))return =
null;if(t!=3D'br'){if(!y){y=3DD.fixBlock(true,t);z=3Dnew =
d.elementPath(D.endContainer).block;}if(!z)z=3DD.fixBlock(false,t);}var =
B=3Dy&&D.checkStartOfBlock(),C=3Dz&&D.checkEndOfBlock();D.deleteContents(=
);if(y&&y.equals(z))if(C){A=3Dnew =
d.elementPath(D.startContainer);D.moveToPosition(z,4);z=3Dnull;}else =
if(B){A=3Dnew =
d.elementPath(D.startContainer);D.moveToPosition(y,3);y=3Dnull;}else{z=3D=
D.splitElement(y);if(!c&&!y.is('ul','ol'))y.appendBogus();}return{previou=
sBlock:y,nextBlock:z,wasStartOfBlock:B,wasEndOfBlock:C,elementPath:A};},s=
plitElement:function(t){var w=3Dthis;if(!w.collapsed)return =
null;w.setEndAt(t,2);
var =
u=3Dw.extractContents(),v=3Dt.clone(false);u.appendTo(v);v.insertAfter(t)=
;w.moveToPosition(t,4);return =
v;},checkBoundaryOfElement:function(t,u){var =
v=3Du=3D=3D1,w=3Dthis.clone();w.collapse(v);w[v?'setStartAt':'setEndAt'](=
t,v?1:2);var x=3Dnew d.walker(w);x.evaluator=3Dp;return =
x[v?'checkBackward':'checkForward']();},checkStartOfBlock:function(){var =
z=3Dthis;var =
t=3Dz.startContainer,u=3Dz.startOffset;if(u&&t.type=3D=3D3){var =
v=3De.ltrim(t.substring(0,u));if(v.length)return false;}z.trim();var =
w=3Dnew =
d.elementPath(z.startContainer),x=3Dz.clone();x.collapse(true);x.setStart=
At(w.block||w.blockLimit,1);var y=3Dnew =
d.walker(x);y.evaluator=3Do(true);return =
y.checkBackward();},checkEndOfBlock:function(){var z=3Dthis;var =
t=3Dz.endContainer,u=3Dz.endOffset;if(t.type=3D=3D3){var =
v=3De.rtrim(t.substring(u));if(v.length)return false;}z.trim();var =
w=3Dnew =
d.elementPath(z.endContainer),x=3Dz.clone();x.collapse(false);x.setEndAt(=
w.block||w.blockLimit,2);var y=3Dnew =
d.walker(x);y.evaluator=3Do(false);return =
y.checkForward();},moveToElementEditablePosition:function(t,u){var =
v;if(f.$empty[t.getName()])return =
false;while(t&&t.type=3D=3D1){v=3Dt.isEditable();if(v)this.moveToPosition=
(t,u?2:1);else =
if(f.$inline[t.getName()]){this.moveToPosition(t,u?4:3);return =
true;}if(f.$empty[t.getName()])t=3Dt[u?'getPrevious':'getNext'](s);else =
t=3Dt[u?'getLast':'getFirst'](s);if(t&&t.type=3D=3D3){this.moveToPosition=
(t,u?4:3);return true;}}return =
v;},moveToElementEditStart:function(t){return =
this.moveToElementEditablePosition(t);},moveToElementEditEnd:function(t){=
return =
this.moveToElementEditablePosition(t,true);},getEnclosedNode:function(){v=
ar =
t=3Dthis.clone();t.optimize();if(t.startContainer.type!=3D1||t.endContain=
er.type!=3D1)return null;var u=3Dnew =
d.walker(t),v=3Dd.walker.bookmark(true),w=3Dd.walker.whitespaces(true),x=3D=
function(z){return w(z)&&v(z);};t.evaluator=3Dx;var =
y=3Du.next();u.reset();return =
y&&y.equals(u.previous())?y:null;},getTouchedStartNode:function(){var =
t=3Dthis.startContainer;if(this.collapsed||t.type!=3D1)return t;return =
t.getChild(this.startOffset)||t;},getTouchedEndNode:function(){var =
t=3Dthis.endContainer;if(this.collapsed||t.type!=3D1)return t;return =
t.getChild(this.endOffset-1)||t;}};})();a.POSITION_AFTER_START=3D1;a.POSI=
TION_BEFORE_END=3D2;a.POSITION_BEFORE_START=3D3;a.POSITION_AFTER_END=3D4;=
a.ENLARGE_ELEMENT=3D1;a.ENLARGE_BLOCK_CONTENTS=3D2;a.ENLARGE_LIST_ITEM_CO=
NTENTS=3D3;a.START=3D1;a.END=3D2;a.STARTEND=3D3;a.SHRINK_ELEMENT=3D1;a.SH=
RINK_TEXT=3D2;(function(){d.rangeList=3Dfunction(n){if(n instanceof =
d.rangeList)return n;if(!n)n=3D[];else if(n instanceof =
d.range)n=3D[n];return e.extend(n,l);
};var l=3D{createIterator:function(){var =
n=3Dthis,o=3D[],p;return{getNextRange:function(){p=3Dp=3D=3Dundefined?0:p=
+1;var q=3Dn[p];if(q&&n.length>1)if(!p)for(var =
r=3Dn.length-1;r>0;r--)o.unshift(n[r].createBookmark(true));else =
q.moveToBookmark(o.shift());return =
q;}};},createBookmarks:function(n){var s=3Dthis;var o=3D[],p;for(var =
q=3D0;q<s.length;q++){o.push(p=3Ds[q].createBookmark(n,true));for(var =
r=3Dq+1;r<s.length;r++){s[r]=3Dm(p,s[r]);s[r]=3Dm(p,s[r],true);}}return =
o;},createBookmarks2:function(n){var o=3D[];for(var =
p=3D0;p<this.length;p++)o.push(this[p].createBookmark2(n));return =
o;},moveToBookmarks:function(n){for(var =
o=3D0;o<this.length;o++)this[o].moveToBookmark(n[o]);}};function =
m(n,o,p){var =
q=3Dn.serializable,r=3Do[p?'endContainer':'startContainer'],s=3Dp?'endOff=
set':'startOffset',t=3Dq?o.document.getById(n.startNode):n.startNode,u=3D=
q?o.document.getById(n.endNode):n.endNode;if(r.equals(t.getPrevious())){o=
.startOffset=3Do.startOffset-r.getLength()-u.getPrevious().getLength();r=3D=
u.getNext();}else =
if(r.equals(u.getPrevious())){o.startOffset=3Do.startOffset-r.getLength()=
;r=3Du.getNext();}r.equals(t.getParent())&&o[s]++;r.equals(u.getParent())=
&&o[s]++;o[p?'endContainer':'startContainer']=3Dr;return =
o;};})();(function(){if(b.webkit){b.hc=3Dfalse;return;}var =
l=3Dc&&b.version<7,m=3Dc&&b.version=3D=3D7,n=3Dl?a.basePath+'images/space=
r.gif':m?'about:blank':'data:image/png;base64,',o=3Dh.createFromHtml('<di=
v =
style=3D"width:0px;height:0px;position:absolute;left:-10000px;background-=
image:url('+n+')"></div>',a.document);o.appendTo(a.document.getHead());tr=
y{b.hc=3Do.getComputedStyle('background-image')=3D=3D'none';}catch(p){b.h=
c=3Dfalse;}if(b.hc)b.cssClass+=3D' =
cke_hc';o.remove();})();j.load(i.corePlugins.split(','),function(){a.stat=
us=3D'loaded';a.fire('loaded');var l=3Da._.pending;if(l){delete =
a._.pending;for(var =
m=3D0;m<l.length;m++)a.add(l[m]);}});a.skins.add('kama',(function(){var =
l=3D[],m=3D'cke_ui_color';if(c&&b.version<7)l.push('icons.png','images/sp=
rites_ie6.png','images/dialog_sides.gif');return{preload:l,editor:{css:['=
editor.css']},dialog:{css:['dialog.css']},templates:{css:['templates.css'=
]},margins:[0,0,0,0],init:function(n){if(n.config.width&&!isNaN(n.config.=
width))n.config.width-=3D12;var o=3D[],p=3D/\$color/g,q=3D'/* UI Color =
Support */.cke_skin_kama .cke_menuitem =
.cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: =
$color !important;}.cke_skin_kama .cke_menuitem a:hover =
.cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:focus =
.cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:active =
.cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: =
$color !important;}.cke_skin_kama .cke_menuitem a:hover =
.cke_label,.cke_skin_kama .cke_menuitem a:focus =
.cke_label,.cke_skin_kama .cke_menuitem a:active =
.cke_label{\tbackground-color: $color !important;}.cke_skin_kama =
.cke_menuitem a.cke_disabled:hover .cke_label,.cke_skin_kama =
.cke_menuitem a.cke_disabled:focus .cke_label,.cke_skin_kama =
.cke_menuitem a.cke_disabled:active .cke_label{\tbackground-color: =
transparent !important;}.cke_skin_kama .cke_menuitem =
a.cke_disabled:hover .cke_icon_wrapper,.cke_skin_kama .cke_menuitem =
a.cke_disabled:focus .cke_icon_wrapper,.cke_skin_kama .cke_menuitem =
a.cke_disabled:active .cke_icon_wrapper{\tbackground-color: $color =
!important;\tborder-color: $color !important;}.cke_skin_kama =
.cke_menuitem a.cke_disabled .cke_icon_wrapper{\tbackground-color: =
$color !important;\tborder-color: $color !important;}.cke_skin_kama =
.cke_menuseparator{\tbackground-color: $color !important;}.cke_skin_kama =
.cke_menuitem a:hover,.cke_skin_kama .cke_menuitem =
a:focus,.cke_skin_kama .cke_menuitem a:active{\tbackground-color: $color =
!important;}';
if(b.webkit){q=3Dq.split('}').slice(0,-1);for(var =
r=3D0;r<q.length;r++)q[r]=3Dq[r].split('{');}function s(v){var =
w=3Dv.getById(m);if(!w){w=3Dv.getHead().append('style');w.setAttribute('i=
d',m);w.setAttribute('type','text/css');}return w;};function =
t(v,w,x){var y,z,A;for(var =
B=3D0;B<v.length;B++){if(b.webkit)for(z=3D0;z<w.length;z++){A=3Dw[z][1];f=
or(y=3D0;y<x.length;y++)A=3DA.replace(x[y][0],x[y][1]);v[B].$.sheet.addRu=
le(w[z][0],A);}else{A=3Dw;for(y=3D0;y<x.length;y++)A=3DA.replace(x[y][0],=
x[y][1]);if(c)v[B].$.styleSheet.cssText+=3DA;else =
v[B].$.innerHTML+=3DA;}}};var =
u=3D/\$color/g;e.extend(n,{uiColor:null,getUiColor:function(){return =
this.uiColor;},setUiColor:function(v){var =
w,x=3Ds(a.document),y=3D'.cke_editor_'+e.escapeCssSelector(n.name),z=3D[y=
+' .cke_wrapper',y+'_dialog .cke_dialog_contents',y+'_dialog =
a.cke_dialog_tab',y+'_dialog =
.cke_dialog_footer'].join(','),A=3D'background-color: $color =
!important;';if(b.webkit)w=3D[[z,A]];else =
w=3Dz+'{'+A+'}';return(this.setUiColor=3Dfunction(B){var =
C=3D[[u,B]];n.uiColor=3DB;t([x],w,C);t(o,q,C);})(v);}});n.on('menuShow',f=
unction(v){var =
w=3Dv.data[0],x=3Dw.element.getElementsByTag('iframe').getItem(0).getFram=
eDocument();if(!x.getById('cke_ui_color')){var y=3Ds(x);o.push(y);var =
z=3Dn.getUiColor();if(z)t([y],q,[[u,z]]);}});if(n.config.uiColor)n.setUiC=
olor(n.config.uiColor);}};})());(function(){a.dialog?l():a.on('dialogPlug=
inReady',l);function l(){a.dialog.on('resize',function(m){var =
n=3Dm.data,o=3Dn.width,p=3Dn.height,q=3Dn.dialog,r=3Dq.parts.contents;if(=
n.skin!=3D'kama')return;r.setStyles({width:o+'px',height:p+'px'});setTime=
out(function(){var =
s=3Dq.parts.dialog.getChild([0,0,0]),t=3Ds.getChild(0),u=3Ds.getChild(2);=
u.setStyle('width',t.$.offsetWidth+'px');u=3Ds.getChild(7);u.setStyle('wi=
dth',t.$.offsetWidth-28+'px');u=3Ds.getChild(4);u.setStyle('height',t.$.o=
ffsetHeight-31-14+'px');u=3Ds.getChild(5);u.setStyle('height',t.$.offsetH=
eight-31-14+'px');},100);});};})();j.add('about',{requires:['dialog'],ini=
t:function(l){var m=3Dl.addCommand('about',new =
a.dialogCommand('about'));m.modes=3D{wysiwyg:1,source:1};m.canUndo=3Dfals=
e;l.ui.addButton('About',{label:l.lang.about.title,command:'about'});a.di=
alog.add('about',this.path+'dialogs/about.js');}});(function(){var =
l=3D'a11yhelp',m=3D'a11yHelp';j.add(l,{availableLangs:{en:1,he:1},init:fu=
nction(n){var o=3Dthis;n.addCommand(m,{exec:function(){var =
p=3Dn.langCode;p=3Do.availableLangs[p]?p:'en';a.scriptLoader.load(a.getUr=
l(o.path+'lang/'+p+'.js'),function(){e.extend(n.lang,o.lang[p]);n.openDia=
log(m);});},modes:{wysiwyg:1,source:1},canUndo:false});a.dialog.add(m,thi=
s.path+'dialogs/a11yhelp.js');
}});})();j.add('basicstyles',{requires:['styles','button'],init:function(=
l){var m=3Dfunction(p,q,r,s){var t=3Dnew =
a.style(s);l.attachStyleStateChange(t,function(u){l.getCommand(r).setStat=
e(u);});l.addCommand(r,new =
a.styleCommand(t));l.ui.addButton(p,{label:q,command:r});},n=3Dl.config,o=
=3Dl.lang;m('Bold',o.bold,'bold',n.coreStyles_bold);m('Italic',o.italic,'=
italic',n.coreStyles_italic);m('Underline',o.underline,'underline',n.core=
Styles_underline);m('Strike',o.strike,'strike',n.coreStyles_strike);m('Su=
bscript',o.subscript,'subscript',n.coreStyles_subscript);m('Superscript',=
o.superscript,'superscript',n.coreStyles_superscript);}});i.coreStyles_bo=
ld=3D{element:'strong',overrides:'b'};i.coreStyles_italic=3D{element:'em'=
,overrides:'i'};i.coreStyles_underline=3D{element:'u'};i.coreStyles_strik=
e=3D{element:'strike'};i.coreStyles_subscript=3D{element:'sub'};i.coreSty=
les_superscript=3D{element:'sup'};(function(){var =
l=3D{table:1,ul:1,ol:1,blockquote:1,div:1},m=3D{};e.extend(m,l,{tr:1,p:1,=
div:1,li:1});function n(r){var =
s=3Dr.editor,t=3Dr.data.path,u=3Ds.config.useComputedState,v;u=3Du=3D=3D=3D=
undefined||u;if(u){var =
w=3Ds.getSelection(),x=3Dw.getRanges();v=3Dx&&x[0].getEnclosedNode();if(!=
v||v&&!(v.type=3D=3D1&&v.getName() in =
m))v=3Dp(w,l);}v=3Dv||t.block||t.blockLimit;if(!v||v.getName()=3D=3D'body=
')return;var =
y=3Du?v.getComputedStyle('direction'):v.getStyle('direction')||v.getAttri=
bute('dir');s.getCommand('bidirtl').setState(y=3D=3D'rtl'?1:2);s.getComma=
nd('bidiltr').setState(y=3D=3D'ltr'?1:2);var =
z=3Ds.container.getChild(1);if(y!=3Ds.lang.dir)z.addClass('cke_mixed_dir_=
content');else z.removeClass('cke_mixed_dir_content');};function =
o(r,s,t){var =
u=3Dr.getComputedStyle('direction'),v=3Dr.getStyle('direction')||r.getAtt=
ribute('dir')||'';r.removeStyle('direction');if(v.toLowerCase()=3D=3Ds)r.=
removeAttribute('dir');else r.setAttribute('dir',s);var =
w=3Dr.getComputedStyle('direction');if(w!=3Du){var x=3Dnew =
d.range(r.getDocument());x.setStartBefore(r);x.setEndAfter(r);var =
y=3Dnew =
d.walker(x),z;while(z=3Dy.next()){if(z.type=3D=3D1){if(!z.equals(r)&&z.ha=
sAttribute('dir')){x.setStartAfter(z);y=3Dnew d.walker(x);continue;}var =
A=3Dz.getStyle('margin-right'),B=3Dz.getStyle('margin-left');A?z.setStyle=
('margin-left',A):z.removeStyle('margin-left');B?z.setStyle('margin-right=
',B):z.removeStyle('margin-right');}}}t.forceNextSelectionCheck();};funct=
ion p(r,s){var =
t=3Dr.getCommonAncestor();while(t.type=3D=3D1&&!(t.getName() in =
s)&&t.getParent().getChildCount()=3D=3D1)t=3Dt.getParent();return =
t.type=3D=3D1&&t.getName() in s&&t;};function q(r){return =
function(s){var =
t=3Ds.getSelection(),u=3Ds.config.enterMode,v=3Dt.getRanges();
if(v&&v.length){var =
w=3Dv[0].getEnclosedNode();if(!w||w&&!(w.type=3D=3D1&&w.getName() in =
m))w=3Dp(t,l);if(w){if(!w.isReadOnly())o(w,r,s);}else{var =
x=3Dt.createBookmarks(),y,z;for(var A=3Dv.length-1;A>=3D0;A--){var =
B=3D[],C=3Dnew d.walker(v[A]);C.evaluator=3Dfunction(G){return =
G.type=3D=3D1&&G.getName() in =
l&&!(G.getName()=3D=3D(u=3D=3D1)?'p':'div'&&G.getParent().type=3D=3D1&&G.=
getParent().getName()=3D=3D'blockquote');};while(z=3DC.next()){o(z,r,s);B=
.push(z);}y=3Dv[A].createIterator();y.enlargeBr=3Du!=3D2;while(z=3Dy.getN=
extParagraph(u=3D=3D1?'p':'div')){if(z.isReadOnly())continue;var =
D=3D0;for(var E=3D0;E<B.length;E++){var =
F=3Dz.getParent();while(F&&F.getName()!=3D'body'){if(F.$.isSameNode&&F.$.=
isSameNode(B[E].$)||F.$=3D=3DB[E].$){D=3D1;break;}F=3DF.getParent();}if(D=
)break;}if(!D)o(z,r,s);}}s.forceNextSelectionCheck();t.selectBookmarks(x)=
;}s.focus();}};};j.add('bidi',{requires:['styles','button'],init:function=
(r){var s=3Dfunction(u,v,w,x){r.addCommand(w,new =
a.command(r,{exec:x}));r.ui.addButton(u,{label:v,command:w});},t=3Dr.lang=
.bidi;s('BidiLtr',t.ltr,'bidiltr',q('ltr'));s('BidiRtl',t.rtl,'bidirtl',q=
('rtl'));r.on('selectionChange',n);}});})();(function(){function =
l(p,q){var =
r=3Dq.block||q.blockLimit;if(!r||r.getName()=3D=3D'body')return =
2;if(r.getAscendant('blockquote',true))return 1;return 2;};function =
m(p){var =
q=3Dp.editor,r=3Dq.getCommand('blockquote');r.state=3Dl(q,p.data.path);r.=
fire('state');};function n(p){for(var =
q=3D0,r=3Dp.getChildCount(),s;q<r&&(s=3Dp.getChild(q));q++){if(s.type=3D=3D=
1&&s.isBlockBoundary())return false;}return true;};var =
o=3D{exec:function(p){var =
q=3Dp.getCommand('blockquote').state,r=3Dp.getSelection(),s=3Dr&&r.getRan=
ges(true)[0];if(!s)return;var t=3Dr.createBookmarks();if(c){var =
u=3Dt[0].startNode,v=3Dt[0].endNode,w;if(u&&u.getParent().getName()=3D=3D=
'blockquote'){w=3Du;while(w=3Dw.getNext()){if(w.type=3D=3D1&&w.isBlockBou=
ndary()){u.move(w,true);break;}}}if(v&&v.getParent().getName()=3D=3D'bloc=
kquote'){w=3Dv;while(w=3Dw.getPrevious()){if(w.type=3D=3D1&&w.isBlockBoun=
dary()){v.move(w);break;}}}}var =
x=3Ds.createIterator(),y;if(q=3D=3D2){var =
z=3D[];while(y=3Dx.getNextParagraph())z.push(y);if(z.length<1){var =
A=3Dp.document.createElement(p.config.enterMode=3D=3D1?'p':'div'),B=3Dt.s=
hift();s.insertNode(A);A.append(new =
d.text('\ufeff',p.document));s.moveToBookmark(B);s.selectNodeContents(A);=
s.collapse(true);B=3Ds.createBookmark();z.push(A);t.unshift(B);}var =
C=3Dz[0].getParent(),D=3D[];for(var =
E=3D0;E<z.length;E++){y=3Dz[E];C=3DC.getCommonAncestor(y.getParent());}va=
r =
F=3D{table:1,tbody:1,tr:1,ol:1,ul:1};while(F[C.getName()])C=3DC.getParent=
();var =
G=3Dnull;while(z.length>0){y=3Dz.shift();while(!y.getParent().equals(C))y=
=3Dy.getParent();
if(!y.equals(G))D.push(y);G=3Dy;}while(D.length>0){y=3DD.shift();if(y.get=
Name()=3D=3D'blockquote'){var H=3Dnew =
d.documentFragment(p.document);while(y.getFirst()){H.append(y.getFirst().=
remove());z.push(H.getLast());}H.replace(y);}else z.push(y);}var =
I=3Dp.document.createElement('blockquote');I.insertBefore(z[0]);while(z.l=
ength>0){y=3Dz.shift();I.append(y);}}else if(q=3D=3D1){var =
J=3D[],K=3D{};while(y=3Dx.getNextParagraph()){var =
L=3Dnull,M=3Dnull;while(y.getParent()){if(y.getParent().getName()=3D=3D'b=
lockquote'){L=3Dy.getParent();M=3Dy;break;}y=3Dy.getParent();}if(L&&M&&!M=
.getCustomData('blockquote_moveout')){J.push(M);h.setMarker(K,M,'blockquo=
te_moveout',true);}}h.clearAllMarkers(K);var =
N=3D[],O=3D[];K=3D{};while(J.length>0){var =
P=3DJ.shift();I=3DP.getParent();if(!P.getPrevious())P.remove().insertBefo=
re(I);else =
if(!P.getNext())P.remove().insertAfter(I);else{P.breakParent(P.getParent(=
));O.push(P.getNext());}if(!I.getCustomData('blockquote_processed')){O.pu=
sh(I);h.setMarker(K,I,'blockquote_processed',true);}N.push(P);}h.clearAll=
Markers(K);for(E=3DO.length-1;E>=3D0;E--){I=3DO[E];if(n(I))I.remove();}if=
(p.config.enterMode=3D=3D2){var =
Q=3Dtrue;while(N.length){P=3DN.shift();if(P.getName()=3D=3D'div'){H=3Dnew=
 d.documentFragment(p.document);var =
R=3DQ&&P.getPrevious()&&!(P.getPrevious().type=3D=3D1&&P.getPrevious().is=
BlockBoundary());if(R)H.append(p.document.createElement('br'));var =
S=3DP.getNext()&&!(P.getNext().type=3D=3D1&&P.getNext().isBlockBoundary()=
);while(P.getFirst())P.getFirst().remove().appendTo(H);if(S)H.append(p.do=
cument.createElement('br'));H.replace(P);Q=3Dfalse;}}}}r.selectBookmarks(=
t);p.focus();}};j.add('blockquote',{init:function(p){p.addCommand('blockq=
uote',o);p.ui.addButton('Blockquote',{label:p.lang.blockquote,command:'bl=
ockquote'});p.on('selectionChange',m);},requires:['domiterator']});})();j=
.add('button',{beforeInit:function(l){l.ui.addHandler(1,k.button.handler)=
;}});a.UI_BUTTON=3D1;k.button=3Dfunction(l){e.extend(this,l,{title:l.labe=
l,className:l.className||l.command&&'cke_button_'+l.command||'',click:l.c=
lick||(function(m){m.execCommand(l.command);})});this._=3D{};};k.button.h=
andler=3D{create:function(l){return new =
k.button(l);}};k.button.prototype=3D{canGroup:true,render:function(l,m){v=
ar =
n=3Db,o=3Dthis._.id=3D'cke_'+e.getNextNumber(),p=3D'',q=3Dthis.command,r,=
s;this._.editor=3Dl;var =
t=3D{id:o,button:this,editor:l,focus:function(){var =
v=3Da.document.getById(o);v.focus();},execute:function(){this.button.clic=
k(l);}};t.clickFn=3Dr=3De.addFunction(t.execute,t);t.index=3Ds=3Dk.button=
._.instances.push(t)-1;if(this.modes)l.on('mode',function(){this.setState=
(this.modes[l.mode]?2:0);
},this);else =
if(q){q=3Dl.getCommand(q);if(q){q.on('state',function(){this.setState(q.s=
tate);},this);p+=3D'cke_'+(q.state=3D=3D1?'on':q.state=3D=3D0?'disabled':=
'off');}}if(!q)p+=3D'cke_off';if(this.className)p+=3D' =
'+this.className;m.push('<span class=3D"cke_button">','<a id=3D"',o,'" =
class=3D"',p,'"',n.gecko&&n.version>=3D10900&&!n.hc?'':'" =
href=3D"javascript:void(\''+(this.title||'').replace("'",'')+"')\"",' =
title=3D"',this.title,'" tabindex=3D"-1" hidefocus=3D"true" =
role=3D"button" aria-labelledby=3D"'+o+'_label"'+(this.hasArrow?' =
aria-haspopup=3D"true"':''));if(n.opera||n.gecko&&n.mac)m.push(' =
onkeypress=3D"return false;"');if(n.gecko)m.push(' =
onblur=3D"this.style.cssText =3D this.style.cssText;"');m.push(' =
onkeydown=3D"return CKEDITOR.ui.button._.keydown(',s,', event);" =
onfocus=3D"return CKEDITOR.ui.button._.focus(',s,', event);" =
onclick=3D"CKEDITOR.tools.callFunction(',r,', this); return =
false;"><span class=3D"cke_icon"');if(this.icon){var =
u=3D(this.iconOffset||0)*-16;m.push(' =
style=3D"background-image:url(',a.getUrl(this.icon),');background-positio=
n:0 '+u+'px;"');}m.push('>&nbsp;</span><span id=3D"',o,'_label" =
class=3D"cke_label">',this.label,'</span>');if(this.hasArrow)m.push('<spa=
n =
class=3D"cke_buttonarrow">'+(b.hc?'&#9660;':'&nbsp;')+'</span>');m.push('=
</a>','</span>');if(this.onRender)this.onRender();return =
t;},setState:function(l){if(this._.state=3D=3Dl)return =
false;this._.state=3Dl;var =
m=3Da.document.getById(this._.id);if(m){m.setState(l);l=3D=3D0?m.setAttri=
bute('aria-disabled',true):m.removeAttribute('aria-disabled');l=3D=3D1?m.=
setAttribute('aria-pressed',true):m.removeAttribute('aria-pressed');retur=
n true;}else return =
false;}};k.button._=3D{instances:[],keydown:function(l,m){var =
n=3Dk.button._.instances[l];if(n.onkey){m=3Dnew d.event(m);return =
n.onkey(n,m.getKeystroke())!=3D=3Dfalse;}},focus:function(l,m){var =
n=3Dk.button._.instances[l],o;if(n.onfocus)o=3Dn.onfocus(n,new =
d.event(m))!=3D=3Dfalse;if(b.gecko&&b.version<10900)m.preventBubble();ret=
urn =
o;}};k.prototype.addButton=3Dfunction(l,m){this.add(l,1,m);};a.on('reset'=
,function(){k.button._.instances=3D[];});(function(){var =
l=3Dfunction(s,t){var =
u=3Ds.document,v=3Du.getBody(),w=3Dfalse,x=3Dfunction(){w=3Dtrue;};v.on(t=
,x);(b.version>7?u.$:u.$.selection.createRange()).execCommand(t);v.remove=
Listener(t,x);return w;},m=3Dc?function(s,t){return =
l(s,t);}:function(s,t){try{return =
s.document.$.execCommand(t);}catch(u){return =
false;}},n=3Dfunction(s){this.type=3Ds;this.canUndo=3Dthis.type=3D=3D'cut=
';};n.prototype=3D{exec:function(s,t){this.type=3D=3D'cut'&&r(s);var =
u=3Dm(s,this.type);if(!u)alert(s.lang.clipboard[this.type+'Error']);
return u;}};var =
o=3D{canUndo:false,exec:c?function(s){s.focus();if(!s.document.getBody().=
fire('beforepaste')&&!l(s,'paste')){s.fire('pasteDialog');return =
false;}}:function(s){try{if(!s.document.getBody().fire('beforepaste')&&!s=
.document.$.execCommand('Paste',false,null))throw =
0;}catch(t){setTimeout(function(){s.fire('pasteDialog');},0);return =
false;}}},p=3Dfunction(s){if(this.mode!=3D'wysiwyg')return;switch(s.data.=
keyCode){case 1000+86:case 2000+45:var =
t=3Dthis.document.getBody();if(!c&&t.fire('beforepaste'))s.cancel();else =
if(b.opera||b.gecko&&b.version<10900)t.fire('paste');return;case =
1000+88:case 2000+46:var =
u=3Dthis;this.fire('saveSnapshot');setTimeout(function(){u.fire('saveSnap=
shot');},0);}};function q(s,t,u){var =
v=3Dthis.document;if(c&&v.getById('cke_pastebin'))return;if(t=3D=3D'text'=
&&s.data&&s.data.$.clipboardData){var =
w=3Ds.data.$.clipboardData.getData('text/plain');if(w){s.data.preventDefa=
ult();u(w);return;}}var x=3Dthis.getSelection(),y=3Dnew =
d.range(v),z=3Dnew =
h(t=3D=3D'text'?'textarea':b.webkit?'body':'div',v);z.setAttribute('id','=
cke_pastebin');b.webkit&&z.append(v.createText('\xa0'));v.getBody().appen=
d(z);z.setStyles({position:'absolute',top:x.getStartElement().getDocument=
Position().y+'px',width:'1px',height:'1px',overflow:'hidden'});z.setStyle=
(this.config.contentsLangDirection=3D=3D'ltr'?'left':'right','-1000px');v=
ar A=3Dx.createBookmarks();if(t=3D=3D'text'){if(c){var =
B=3Dv.getBody().$.createTextRange();B.moveToElementText(z.$);B.execComman=
d('Paste');s.data.preventDefault();}else{v.$.designMode=3D'off';z.$.focus=
();}}else{y.setStartAt(z,1);y.setEndAt(z,2);y.select(true);}window.setTim=
eout(function(){t=3D=3D'text'&&!c&&(v.$.designMode=3D'on');z.remove();var=
 =
C;z=3Db.webkit&&(C=3Dz.getFirst())&&C.is&&C.hasClass('Apple-style-span')?=
C:z;x.selectBookmarks(A);u(z['get'+(t=3D=3D'text'?'Value':'Html')]());},0=
);};function =
r(s){if(!c||s.document.$.compatMode=3D=3D'BackCompat')return;var =
t=3Ds.getSelection(),u;if(t.getType()=3D=3D3&&(u=3Dt.getSelectedElement()=
)){var =
v=3Dt.getRanges()[0],w=3Ds.document.createText('');w.insertBefore(u);v.se=
tStartBefore(w);v.setEndAfter(u);t.selectRanges([v]);setTimeout(function(=
){if(u.getParent()){w.remove();t.selectElement(u);}},0);}};j.add('clipboa=
rd',{requires:['dialog','htmldataprocessor'],init:function(s){s.on('paste=
',function(x){var y=3Dx.data;if(y.html)s.insertHtml(y.html);else =
if(y.text)s.insertText(y.text);},null,null,1000);s.on('pasteDialog',funct=
ion(x){setTimeout(function(){s.openDialog('paste');},0);});function =
t(x,y,z,A){var =
B=3Ds.lang[y];s.addCommand(y,z);s.ui.addButton(x,{label:B,command:y});
if(s.addMenuItems)s.addMenuItem(y,{label:B,command:y,group:'clipboard',or=
der:A});};t('Cut','cut',new n('cut'),1);t('Copy','copy',new =
n('copy'),4);t('Paste','paste',o,8);a.dialog.add('paste',a.getUrl(this.pa=
th+'dialogs/paste.js'));s.on('key',p,s);var =
u=3Ds.config.forcePasteAsPlainText?'text':'html';s.on('contentDom',functi=
on(){var =
x=3Ds.document.getBody();x.on(u=3D=3D'text'&&c||b.webkit?'paste':'beforep=
aste',function(y){if(v)return;q.call(s,y,u,function(z){if(!z)return;var =
A=3D{};A[u]=3Dz;s.fire('paste',A);});});x.on('beforecut',function(){!v&&r=
(s);});});if(s.contextMenu){var v;function w(x){c&&(v=3D1);var =
y=3Ds.document.$.queryCommandEnabled(x)?2:0;v=3D0;return =
y;};s.contextMenu.addListener(function(x,y){var =
z=3Dy.getCommonAncestor().isReadOnly();return{cut:!z&&w('Cut'),copy:w('Co=
py'),paste:!z&&(b.webkit?2:w('Paste'))};});}}});})();j.add('colorbutton',=
{requires:['panelbutton','floatpanel','styles'],init:function(l){var =
m=3Dl.config,n=3Dl.lang.colorButton,o;if(!b.hc){p('TextColor','fore',n.te=
xtColorTitle);p('BGColor','back',n.bgColorTitle);}function =
p(r,s,t){l.ui.add(r,4,{label:t,title:t,className:'cke_button_'+r.toLowerC=
ase(),modes:{wysiwyg:1},panel:{css:l.skin.editor.css,attributes:{role:'li=
stbox','aria-label':n.panelTitle}},onBlock:function(u,v){v.autoSize=3Dtru=
e;v.element.addClass('cke_colorblock');v.element.setHtml(q(u,s));v.elemen=
t.getDocument().getBody().setStyle('overflow','hidden');var =
w=3Dv.keys,x=3Dl.lang.dir=3D=3D'rtl';w[x?37:39]=3D'next';w[40]=3D'next';w=
[9]=3D'next';w[x?39:37]=3D'prev';w[38]=3D'prev';w[2000+9]=3D'prev';w[32]=3D=
'click';}});};function q(r,s){var =
t=3D[],u=3Dm.colorButton_colors.split(','),v=3Du.length+(m.colorButton_en=
ableMore?2:1),w=3De.addFunction(function(C,D){if(C=3D=3D'?'){var =
E=3Darguments.callee;function =
F(H){this.removeListener('ok',F);this.removeListener('cancel',F);H.name=3D=
=3D'ok'&&E(this.getContentElement('picker','selectedColor').getValue(),D)=
;};l.openDialog('colordialog',function(){this.on('ok',F);this.on('cancel'=
,F);});return;}l.focus();r.hide();l.fire('saveSnapshot');new =
a.style(m['colorButton_'+D+'Style'],{color:'inherit'}).remove(l.document)=
;if(C){var =
G=3Dm['colorButton_'+D+'Style'];G.childRule=3DD=3D=3D'back'?function(){re=
turn false;}:function(H){return H.getName()!=3D'a';};new =
a.style(G,{color:C}).apply(l.document);}l.fire('saveSnapshot');});t.push(=
'<a class=3D"cke_colorauto" _cke_focus=3D1 hidefocus=3Dtrue =
title=3D"',n.auto,'" =
onclick=3D"CKEDITOR.tools.callFunction(',w,",null,'",s,"');return =
false;\" href=3D\"javascript:void('",n.auto,'\')" role=3D"option" =
aria-posinset=3D"1" aria-setsize=3D"',v,'"><table role=3D"presentation" =
cellspacing=3D0 cellpadding=3D0 width=3D"100%"><tr><td><span =
class=3D"cke_colorbox" style=3D"background-color:#000"></span></td><td =
colspan=3D7 align=3Dcenter>',n.auto,'</td></tr></table></a><table =
role=3D"presentation" cellspacing=3D0 cellpadding=3D0 width=3D"100%">');
for(var x=3D0;x<u.length;x++){if(x%8=3D=3D=3D0)t.push('</tr><tr>');var =
y=3Du[x].split('/'),z=3Dy[0],A=3Dy[1]||z;if(!y[1])z=3D'#'+z.replace(/^(.)=
(.)(.)$/,'$1$1$2$2$3$3');var B=3Dl.lang.colors[A]||A;t.push('<td><a =
class=3D"cke_colorbox" _cke_focus=3D1 hidefocus=3Dtrue title=3D"',B,'" =
onclick=3D"CKEDITOR.tools.callFunction(',w,",'",z,"','",s,"'); return =
false;\" href=3D\"javascript:void('",B,'\')" role=3D"option" =
aria-posinset=3D"',x+2,'" aria-setsize=3D"',v,'"><span =
class=3D"cke_colorbox" =
style=3D"background-color:#',A,'"></span></a></td>');}if(m.colorButton_en=
ableMore)t.push('</tr><tr><td colspan=3D8 align=3Dcenter><a =
class=3D"cke_colormore" _cke_focus=3D1 hidefocus=3Dtrue =
title=3D"',n.more,'" =
onclick=3D"CKEDITOR.tools.callFunction(',w,",'?','",s,"');return =
false;\" href=3D\"javascript:void('",n.more,"')\"",' role=3D"option" =
aria-posinset=3D"',v,'" =
aria-setsize=3D"',v,'">',n.more,'</a></td>');t.push('</tr></table>');retu=
rn =
t.join('');};}});i.colorButton_enableMore=3Dtrue;i.colorButton_colors=3D'=
000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520=
,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82=
EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,=
FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF';i.colorButton_foreStyle=3D=
{element:'span',styles:{color:'#(color)'},overrides:[{element:'font',attr=
ibutes:{color:null}}]};i.colorButton_backStyle=3D{element:'span',styles:{=
'background-color':'#(color)'}};(function(){j.colordialog=3D{init:functio=
n(l){l.addCommand('colordialog',new =
a.dialogCommand('colordialog'));a.dialog.add('colordialog',this.path+'dia=
logs/colordialog.js');}};j.add('colordialog',j.colordialog);})();j.add('c=
ontextmenu',{requires:['menu'],beforeInit:function(l){l.contextMenu=3Dnew=
 =
j.contextMenu(l);l.addCommand('contextMenu',{exec:function(){l.contextMen=
u.show(l.document.getBody());}});}});j.contextMenu=3De.createClass({$:fun=
ction(l){this.id=3D'cke_'+e.getNextNumber();this.editor=3Dl;this._.listen=
ers=3D[];this._.functionId=3De.addFunction(function(m){this._.panel.hide(=
);l.focus();l.execCommand(m);},this);this.definition=3D{panel:{className:=
l.skinClass+' =
cke_contextmenu',attributes:{'aria-label':l.lang.contextmenu.options}}};}=
,_:{onMenu:function(l,m,n,o){var =
p=3Dthis._.menu,q=3Dthis.editor;if(p){p.hide();p.removeAll();}else{p=3Dth=
is._.menu=3Dnew =
a.menu(q,this.definition);p.onClick=3De.bind(function(z){p.hide();if(z.on=
Click)z.onClick();else =
if(z.command)q.execCommand(z.command);},this);p.onEscape=3Dfunction(z){va=
r A=3Dthis.parent;if(A){A._.panel.hideChild();var =
B=3DA._.panel._.panel._.currentBlock,C=3DB._.focusIndex;
B._.markItem(C);}else if(z=3D=3D27){this.hide();q.focus();}return =
false;};}var =
r=3Dthis._.listeners,s=3D[],t=3Dthis.editor.getSelection(),u=3Dt&&t.getSt=
artElement();p.onHide=3De.bind(function(){p.onHide=3Dnull;if(c){var =
z=3Dq.getSelection();z&&z.unlock();}this.onHide&&this.onHide();},this);fo=
r(var v=3D0;v<r.length;v++){var w=3Dr[v](u,t);if(w)for(var x in w){var =
y=3Dthis.editor.getMenuItem(x);if(y){y.state=3Dw[x];p.add(y);}}}p.items.l=
ength&&p.show(l,m||(q.lang.dir=3D=3D'rtl'?2:1),n,o);}},proto:{addTarget:f=
unction(l,m){if(b.opera){var =
n;l.on('mousedown',function(r){r=3Dr.data;if(r.$.button!=3D2){if(r.getKey=
stroke()=3D=3D1000+1)l.fire('contextmenu',r);return;}if(m&&(b.mac?r.$.met=
aKey:r.$.ctrlKey))return;var s=3Dr.getTarget();if(!n){var =
t=3Ds.getDocument();n=3Dt.createElement('input');n.$.type=3D'button';t.ge=
tBody().append(n);}n.setAttribute('style','position:absolute;top:'+(r.$.c=
lientY-2)+'px;left:'+(r.$.clientX-2)+'px;width:5px;height:5px;opacity:0.0=
1');});l.on('mouseup',function(r){if(n){n.remove();n=3Dundefined;l.fire('=
contextmenu',r.data);}});}l.on('contextmenu',function(r){var =
s=3Dr.data;if(m&&(b.webkit?o:b.mac?s.$.metaKey:s.$.ctrlKey))return;s.prev=
entDefault();var =
t=3Ds.getTarget().getDocument().getDocumentElement(),u=3Ds.$.clientX,v=3D=
s.$.clientY;e.setTimeout(function(){this.show(t,null,u,v);},0,this);},thi=
s);if(b.webkit){var =
o,p=3Dfunction(r){o=3Db.mac?r.data.$.metaKey:r.data.$.ctrlKey;},q=3Dfunct=
ion(){o=3D0;};l.on('keydown',p);l.on('keyup',q);l.on('contextmenu',q);}},=
addListener:function(l){this._.listeners.push(l);},show:function(l,m,n,o)=
{this.editor.focus();if(c){var =
p=3Dthis.editor.getSelection();p&&p.lock();}this._.onMenu(l||a.document.g=
etDocumentElement(),m,n||0,o||0);}}});(function(){function l(n){var =
o=3Dthis.att,p=3Dn&&n.hasAttribute(o)&&n.getAttribute(o)||'';if(p!=3D=3Du=
ndefined)this.setValue(p);};function m(){var n;for(var =
o=3D0;o<arguments.length;o++){if(arguments[o] instanceof =
h){n=3Darguments[o];break;}}if(n){var =
p=3Dthis.att,q=3Dthis.getValue();if(q)n.setAttribute(p,q);else =
n.removeAttribute(p,q);}};j.add('dialogadvtab',{createAdvancedTab:functio=
n(n,o){if(!o)o=3D{id:1,dir:1,classes:1,styles:1};var =
p=3Dn.lang.common,q=3D{id:'advanced',label:p.advancedTab,title:p.advanced=
Tab,elements:[{type:'vbox',padding:1,children:[]}]},r=3D[];if(o.id||o.dir=
){if(o.id)r.push({id:'advId',att:'id',type:'text',label:p.id,setup:l,comm=
it:m});if(o.dir)r.push({id:'advLangDir',att:'dir',type:'select',label:p.l=
angDir,'default':'',style:'width:100%',items:[[p.notSet,''],[p.langDirLTR=
,'ltr'],[p.langDirRTL,'rtl']],setup:l,commit:m});q.elements[0].children.p=
ush({type:'hbox',widths:['50%','50%'],children:[].concat(r)});
}if(o.styles||o.classes){r=3D[];if(o.styles)r.push({id:'advStyles',att:'s=
tyle',type:'text',label:p.styles,'default':'',onChange:function(){},getSt=
yle:function(s,t){var u=3Dthis.getValue().match(new =
RegExp(s+'\\s*:s*([^;]*)','i'));return =
u?u[1]:t;},updateStyle:function(s,t){var =
u=3Dthis.getValue();if(u)u=3Du.replace(new =
RegExp('\\s*'+s+'s*:[^;]*(?:$|;s*)','i'),'').replace(/^[;\s]+/,'').replac=
e(/\s+$/,'');if(t){u&&!/;\s*$/.test(u)&&(u+=3D'; ');u+=3Ds+': =
'+t;}this.setValue(u,true);},setup:l,commit:m});if(o.classes)r.push({type=
:'hbox',widths:['45%','55%'],children:[{id:'advCSSClasses',att:'class',ty=
pe:'text',label:p.cssClasses,'default':'',setup:l,commit:m}]});q.elements=
[0].children.push({type:'hbox',widths:['50%','50%'],children:[].concat(r)=
});}return =
q;}});})();(function(){j.add('div',{requires:['editingblock','domiterator=
','styles'],init:function(l){var =
m=3Dl.lang.div;l.addCommand('creatediv',new =
a.dialogCommand('creatediv'));l.addCommand('editdiv',new =
a.dialogCommand('editdiv'));l.addCommand('removediv',{exec:function(n){va=
r =
o=3Dn.getSelection(),p=3Do&&o.getRanges(),q,r=3Do.createBookmarks(),s,t=3D=
[];function u(w){var x=3Dnew =
d.elementPath(w),y=3Dx.blockLimit,z=3Dy.is('div')&&y;if(z&&!z.getAttribut=
e('_cke_div_added')){t.push(z);z.setAttribute('_cke_div_added');}};for(va=
r =
v=3D0;v<p.length;v++){q=3Dp[v];if(q.collapsed)u(o.getStartElement());else=
{s=3Dnew =
d.walker(q);s.evaluator=3Du;s.lastForward();}}for(v=3D0;v<t.length;v++)t[=
v].remove(true);o.selectBookmarks(r);}});l.ui.addButton('CreateDiv',{labe=
l:m.toolbar,command:'creatediv'});if(l.addMenuItems){l.addMenuItems({edit=
div:{label:m.edit,command:'editdiv',group:'div',order:1},removediv:{label=
:m.remove,command:'removediv',group:'div',order:5}});if(l.contextMenu)l.c=
ontextMenu.addListener(function(n,o){if(!n||n.isReadOnly())return =
null;var p=3Dnew =
d.elementPath(n),q=3Dp.blockLimit;if(q&&q.getAscendant('div',true))return=
{editdiv:2,removediv:2};return =
null;});}a.dialog.add('creatediv',this.path+'dialogs/div.js');a.dialog.ad=
d('editdiv',this.path+'dialogs/div.js');}});})();(function(){var =
l=3D{toolbarFocus:{exec:function(n){var =
o=3Dn._.elementsPath.idBase,p=3Da.document.getById(o+'0');if(p)p.focus();=
}}},m=3D'<span =
class=3D"cke_empty">&nbsp;</span>';j.add('elementspath',{requires:['selec=
tion'],init:function(n){var =
o=3D'cke_path_'+n.name,p,q=3Dfunction(){if(!p)p=3Da.document.getById(o);r=
eturn =
p;},r=3D'cke_elementspath_'+e.getNextNumber()+'_';n._.elementsPath=3D{idB=
ase:r,filters:[]};n.on('themeSpace',function(s){if(s.data.space=3D=3D'bot=
tom')s.data.html+=3D'<span id=3D"'+o+'_label" =
class=3D"cke_voice_label">'+n.lang.elementsPath.eleLabel+'</span>'+'<div =
id=3D"'+o+'" class=3D"cke_path" role=3D"group" =
aria-labelledby=3D"'+o+'_label">'+m+'</div>';
});n.on('selectionChange',function(s){var =
t=3Db,u=3Ds.data.selection,v=3Du.getStartElement(),w=3D[],x=3Ds.editor,y=3D=
x._.elementsPath.list=3D[],z=3Dx._.elementsPath.filters;while(v){var =
A=3D0;for(var =
B=3D0;B<z.length;B++){if(z[B](v)=3D=3D=3Dfalse){A=3D1;break;}}if(!A){var =
C=3Dy.push(v)-1,D;if(v.getAttribute('_cke_real_element_type'))D=3Dv.getAt=
tribute('_cke_real_element_type');else D=3Dv.getName();var =
E=3D'';if(t.opera||t.gecko&&t.mac)E+=3D' onkeypress=3D"return =
false;"';if(t.gecko)E+=3D' onblur=3D"this.style.cssText =3D =
this.style.cssText;"';var =
F=3Dx.lang.elementsPath.eleTitle.replace(/%1/,D);w.unshift('<a =
id=3D"',r,C,'" href=3D"javascript:void(\'',D,'\')" tabindex=3D"-1" =
title=3D"',F,'"'+(b.gecko&&b.version<10900?' =
onfocus=3D"event.preventBubble();"':'')+' hidefocus=3D"true" '+" =
onkeydown=3D\"return CKEDITOR._.elementsPath.keydown('",x.name,"',",C,', =
event);"'+E," onclick=3D\"return =
CKEDITOR._.elementsPath.click('",x.name,"',",C,');"',' role=3D"button" =
aria-labelledby=3D"'+r+C+'_label">',D,'<span id=3D"',r,C,'_label" =
class=3D"cke_label">'+F+'</span>','</a>');}if(D=3D=3D'body')break;v=3Dv.g=
etParent();}q().setHtml(w.join('')+m);});n.on('contentDomUnload',function=
(){p&&p.setHtml(m);});n.addCommand('elementsPathFocus',l.toolbarFocus);}}=
);})();a._.elementsPath=3D{click:function(l,m){var =
n=3Da.instances[l];n.focus();var =
o=3Dn._.elementsPath.list[m];n.getSelection().selectElement(o);return =
false;},keydown:function(l,m,n){var =
o=3Dk.button._.instances[m],p=3Da.instances[l],q=3Dp._.elementsPath.idBas=
e,r;n=3Dnew d.event(n);var =
s=3Dp.lang.dir=3D=3D'rtl';switch(n.getKeystroke()){case s?39:37:case =
9:r=3Da.document.getById(q+(m+1));if(!r)r=3Da.document.getById(q+'0');r.f=
ocus();return false;case s?37:39:case =
2000+9:r=3Da.document.getById(q+(m-1));if(!r)r=3Da.document.getById(q+(p.=
_.elementsPath.list.length-1));r.focus();return false;case =
27:p.focus();return false;case 13:case 32:this.click(l,m);return =
false;}return =
true;}};(function(){j.add('enterkey',{requires:['keystrokes','indent'],in=
it:function(s){var =
t=3Ds.specialKeys;t[13]=3Dq;t[2000+13]=3Dp;}});j.enterkey=3D{enterBlock:f=
unction(s,t,u,v){u=3Du||r(s);if(!u)return;var =
w=3Du.document;if(u.checkStartOfBlock()&&u.checkEndOfBlock()){var =
x=3Dnew =
d.elementPath(u.startContainer),y=3Dx.block;if(y&&(y.is('li')||y.getParen=
t().is('li'))){s.execCommand('outdent');return;}}var =
z=3Dt=3D=3D3?'div':'p',A=3Du.splitBlock(z);if(!A)return;var =
B=3DA.previousBlock,C=3DA.nextBlock,D=3DA.wasStartOfBlock,E=3DA.wasEndOfB=
lock,F;if(C){F=3DC.getParent();if(F.is('li')){C.breakParent(F);C.move(C.g=
etNext(),true);}}else =
if(B&&(F=3DB.getParent())&&F.is('li')){B.breakParent(F);u.moveToElementEd=
itStart(B.getNext());
B.move(B.getPrevious());}if(!D&&!E){if(C.is('li')&&(F=3DC.getFirst(d.walk=
er.invisible(true)))&&F.is&&F.is('ul','ol'))(c?w.createText('\xa0'):w.cre=
ateElement('br')).insertBefore(F);if(C)u.moveToElementEditStart(C);}else{=
var G;if(B){if(B.is('li')||!o.test(B.getName()))G=3DB.clone();}else =
if(C)G=3DC.clone();if(!G)G=3Dw.createElement(z);else =
if(v&&!G.is('li'))G.renameNode(z);var H=3DA.elementPath;if(H)for(var =
I=3D0,J=3DH.elements.length;I<J;I++){var =
K=3DH.elements[I];if(K.equals(H.block)||K.equals(H.blockLimit))break;if(f=
.$removeEmpty[K.getName()]){K=3DK.clone();G.moveChildren(K);G.append(K);}=
}if(!c)G.appendBogus();u.insertNode(G);if(c&&D&&(!E||!B.getChildCount()))=
{u.moveToElementEditStart(E?B:G);u.select();}u.moveToElementEditStart(D&&=
!E?C:G);}if(!c)if(C){var =
L=3Dw.createElement('span');L.setHtml('&nbsp;');u.insertNode(L);L.scrollI=
ntoView();u.deleteContents();}else =
G.scrollIntoView();u.select();},enterBr:function(s,t,u,v){u=3Du||r(s);if(=
!u)return;var =
w=3Du.document,x=3Dt=3D=3D3?'div':'p',y=3Du.checkEndOfBlock(),z=3Dnew =
d.elementPath(s.getSelection().getStartElement()),A=3Dz.block,B=3DA&&z.bl=
ock.getName(),C=3Dfalse;if(!v&&B=3D=3D'li'){n(s,t,u,v);return;}if(!v&&y&&=
o.test(B)){w.createElement('br').insertAfter(A);if(b.gecko)w.createText('=
').insertAfter(A);u.setStartAt(A.getNext(),c?3:1);}else{var =
D;C=3DB=3D=3D'pre';if(C&&!b.gecko)D=3Dw.createText(c?'\r':'\n');else =
D=3Dw.createElement('br');u.deleteContents();u.insertNode(D);if(!c)w.crea=
teText('\ufeff').insertAfter(D);if(y&&!c)D.getParent().appendBogus();if(!=
c)D.getNext().$.nodeValue=3D'';if(c)u.setStartAt(D,4);else =
u.setStartAt(D.getNext(),1);if(!c){var =
E=3Dnull;if(!b.gecko){E=3Dw.createElement('span');E.setHtml('&nbsp;');}el=
se =
E=3Dw.createElement('br');E.insertBefore(D.getNext());E.scrollIntoView();=
E.remove();}}u.collapse(true);u.select(C);}};var =
l=3Dj.enterkey,m=3Dl.enterBr,n=3Dl.enterBlock,o=3D/^h[1-6]$/;function =
p(s){if(s.mode!=3D'wysiwyg')return =
false;if(s.getSelection().getStartElement().hasAscendant('pre',true)){set=
Timeout(function(){n(s,s.config.enterMode,null,true);},0);return =
true;}else return q(s,s.config.shiftEnterMode,true);};function =
q(s,t,u){u=3Ds.config.forceEnterMode||u;if(s.mode!=3D'wysiwyg')return =
false;if(!t)t=3Ds.config.enterMode;setTimeout(function(){s.fire('saveSnap=
shot');if(t=3D=3D2||s.getSelection().getStartElement().hasAscendant('pre'=
,true))m(s,t,null,u);else n(s,t,null,u);},0);return true;};function =
r(s){var t=3Ds.getSelection().getRanges(true);for(var =
u=3Dt.length-1;u>0;u--)t[u].deleteContents();return =
t[0];};})();(function(){var =
l=3D'nbsp,gt,lt,quot',m=3D'iexcl,cent,pound,curren,yen,brvbar,sect,uml,co=
py,ordf,laquo,not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,midd=
ot,cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,times,divide,fnof,bu=
ll,hellip,prime,Prime,oline,frasl,weierp,image,real,trade,alefsym,larr,ua=
rr,rarr,darr,harr,crarr,lArr,uArr,rArr,dArr,hArr,forall,part,exist,empty,=
nabla,isin,notin,ni,prod,sum,minus,lowast,radic,prop,infin,ang,and,or,cap=
,cup,int,there4,sim,cong,asymp,ne,equiv,le,ge,sub,sup,nsub,sube,supe,oplu=
s,otimes,perp,sdot,lceil,rceil,lfloor,rfloor,lang,rang,loz,spades,clubs,h=
earts,diams,circ,tilde,ensp,emsp,thinsp,zwnj,zwj,lrm,rlm,ndash,mdash,lsqu=
o,rsquo,sbquo,ldquo,rdquo,bdquo,dagger,Dagger,permil,lsaquo,rsaquo,euro',=
n=3D'Agrave,Aacute,Acirc,Atilde,Auml,Aring,AElig,Ccedil,Egrave,Eacute,Eci=
rc,Euml,Igrave,Iacute,Icirc,Iuml,ETH,Ntilde,Ograve,Oacute,Ocirc,Otilde,Ou=
ml,Oslash,Ugrave,Uacute,Ucirc,Uuml,Yacute,THORN,szlig,agrave,aacute,acirc=
,atilde,auml,aring,aelig,ccedil,egrave,eacute,ecirc,euml,igrave,iacute,ic=
irc,iuml,eth,ntilde,ograve,oacute,ocirc,otilde,ouml,oslash,ugrave,uacute,=
ucirc,uuml,yacute,thorn,yuml,OElig,oelig,Scaron,scaron,Yuml',o=3D'Alpha,B=
eta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,Mu,Nu,Xi,Omicron=
,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega,alpha,beta,gamma,delta,epsilo=
n,zeta,eta,theta,iota,kappa,lambda,mu,nu,xi,omicron,pi,rho,sigmaf,sigma,t=
au,upsilon,phi,chi,psi,omega,thetasym,upsih,piv';
function p(q,r){var =
s=3D{},t=3D[],u=3D{nbsp:'\xa0',shy:'=C2=AD',gt:'>',lt:'<'};q=3Dq.replace(=
/\b(nbsp|shy|gt|lt|amp)(?:,|$)/g,function(z,A){var =
B=3Dr?'&'+A+';':u[A],C=3Dr?u[A]:'&'+A+';';s[B]=3DC;t.push(B);return =
'';});if(!r){q=3Dq.split(',');var =
v=3Ddocument.createElement('div'),w;v.innerHTML=3D'&'+q.join(';&')+';';w=3D=
v.innerHTML;v=3Dnull;for(var x=3D0;x<w.length;x++){var =
y=3Dw.charAt(x);s[y]=3D'&'+q[x]+';';t.push(y);}}s.regex=3Dt.join(r?'|':''=
);return s;};j.add('entities',{afterInit:function(q){var =
r=3Dq.config,s=3Dq.dataProcessor,t=3Ds&&s.htmlFilter;if(t){var =
u=3Dl;if(r.entities){u+=3D','+m;if(r.entities_latin)u+=3D','+n;if(r.entit=
ies_greek)u+=3D','+o;if(r.entities_additional)u+=3D','+r.entities_additio=
nal;}var v=3Dp(u),w=3D'['+v.regex+']';delete =
v.regex;if(r.entities&&r.entities_processNumerical)w=3D'[^ =
-~]|'+w;w=3Dnew RegExp(w,'g');function x(B){return =
r.entities_processNumerical=3D=3D'force'||!v[B]?'&#'+B.charCodeAt(0)+';':=
v[B];};var y=3Dp([l,'shy'].join(','),true),z=3Dnew =
RegExp(y.regex,'g');function A(B){return =
y[B];};t.addRules({text:function(B){return =
B.replace(z,A).replace(w,x);}});}}});})();i.entities=3Dtrue;i.entities_la=
tin=3Dtrue;i.entities_greek=3Dtrue;i.entities_processNumerical=3Dfalse;i.=
entities_additional=3D'#39';(function(){function l(u,v){var =
w=3D[];if(!v)return u;else for(var x in =
v)w.push(x+'=3D'+encodeURIComponent(v[x]));return =
u+(u.indexOf('?')!=3D-1?'&':'?')+w.join('&');};function m(u){u+=3D'';var =
v=3Du.charAt(0).toUpperCase();return v+u.substr(1);};function n(u){var =
B=3Dthis;var =
v=3DB.getDialog(),w=3Dv.getParentEditor();w._.filebrowserSe=3DB;var =
x=3Dw.config['filebrowser'+m(v.getName())+'WindowWidth']||w.config.filebr=
owserWindowWidth||'80%',y=3Dw.config['filebrowser'+m(v.getName())+'Window=
Height']||w.config.filebrowserWindowHeight||'70%',z=3DB.filebrowser.param=
s||{};z.CKEditor=3Dw.name;z.CKEditorFuncNum=3Dw._.filebrowserFn;if(!z.lan=
gCode)z.langCode=3Dw.langCode;var =
A=3Dl(B.filebrowser.url,z);w.popup(A,x,y,w.config.fileBrowserWindowFeatur=
es);};function o(u){var x=3Dthis;var =
v=3Dx.getDialog(),w=3Dv.getParentEditor();w._.filebrowserSe=3Dx;if(!v.get=
ContentElement(x['for'][0],x['for'][1]).getInputElement().$.value)return =
false;if(!v.getContentElement(x['for'][0],x['for'][1]).getAction())return=
 false;return true;};function p(u,v,w){var =
x=3Dw.params||{};x.CKEditor=3Du.name;x.CKEditorFuncNum=3Du._.filebrowserF=
n;if(!x.langCode)x.langCode=3Du.langCode;v.action=3Dl(w.url,x);v.filebrow=
ser=3Dw;};function q(u,v,w,x){var y,z;for(var A in =
x){y=3Dx[A];if(y.type=3D=3D'hbox'||y.type=3D=3D'vbox')q(u,v,w,y.children)=
;if(!y.filebrowser)continue;if(typeof y.filebrowser=3D=3D'string'){var =
B=3D{action:y.type=3D=3D'fileButton'?'QuickUpload':'Browse',target:y.file=
browser};
y.filebrowser=3DB;}if(y.filebrowser.action=3D=3D'Browse'){var =
C=3Dy.filebrowser.url||u.config['filebrowser'+m(v)+'BrowseUrl']||u.config=
.filebrowserBrowseUrl;if(C){y.onClick=3Dn;y.filebrowser.url=3DC;y.hidden=3D=
false;}}else =
if(y.filebrowser.action=3D=3D'QuickUpload'&&y['for']){C=3Dy.filebrowser.u=
rl||u.config['filebrowser'+m(v)+'UploadUrl']||u.config.filebrowserUploadU=
rl;if(C){var D=3Dy.onClick;y.onClick=3Dfunction(E){var =
F=3DE.sender;if(D&&D.call(F,E)=3D=3D=3Dfalse)return false;return =
o.call(F,E);};y.filebrowser.url=3DC;y.hidden=3Dfalse;p(u,w.getContents(y[=
'for'][0]).get(y['for'][1]),y.filebrowser);}}}};function r(u,v){var =
w=3Dv.getDialog(),x=3Dv.filebrowser.target||null;u=3Du.replace(/#/g,'%23'=
);if(x){var =
y=3Dx.split(':'),z=3Dw.getContentElement(y[0],y[1]);if(z){z.setValue(u);w=
.selectPage(y[0]);}}};function s(u,v,w){if(w.indexOf(';')!=3D=3D-1){var =
x=3Dw.split(';');for(var y=3D0;y<x.length;y++){if(s(u,v,x[y]))return =
true;}return false;}var z=3Du.getContents(v).get(w).filebrowser;return =
z&&z.url;};function t(u,v){var z=3Dthis;var =
w=3Dz._.filebrowserSe.getDialog(),x=3Dz._.filebrowserSe['for'],y=3Dz._.fi=
lebrowserSe.filebrowser.onSelect;if(x)w.getContentElement(x[0],x[1]).rese=
t();if(typeof =
v=3D=3D'function'&&v.call(z._.filebrowserSe)=3D=3D=3Dfalse)return;if(y&&y=
.call(z._.filebrowserSe,u,v)=3D=3D=3Dfalse)return;if(typeof =
v=3D=3D'string'&&v)alert(v);if(u)r(u,z._.filebrowserSe);};j.add('filebrow=
ser',{init:function(u,v){u._.filebrowserFn=3De.addFunction(t,u);}});a.on(=
'dialogDefinition',function(u){var v=3Du.data.definition,w;for(var x in =
v.contents){if(w=3Dv.contents[x]){q(u.editor,u.data.name,v,w.elements);if=
(w.hidden&&w.filebrowser)w.hidden=3D!s(v,w.id,w.filebrowser);}}});})();j.=
add('find',{init:function(l){var =
m=3Dj.find;l.ui.addButton('Find',{label:l.lang.findAndReplace.find,comman=
d:'find'});var n=3Dl.addCommand('find',new =
a.dialogCommand('find'));n.canUndo=3Dfalse;l.ui.addButton('Replace',{labe=
l:l.lang.findAndReplace.replace,command:'replace'});var =
o=3Dl.addCommand('replace',new =
a.dialogCommand('replace'));o.canUndo=3Dfalse;a.dialog.add('find',this.pa=
th+'dialogs/find.js');a.dialog.add('replace',this.path+'dialogs/find.js')=
;},requires:['styles']});i.find_highlight=3D{element:'span',styles:{'back=
ground-color':'#004',color:'#fff'}};(function(){var =
l=3D/\.swf(?:$|\?)/i,m=3D/^\d+(?:\.\d+)?$/;function =
n(q){if(m.test(q))return q+'px';return q;};function o(q){var =
r=3Dq.attributes;return =
r.type=3D=3D'application/x-shockwave-flash'||l.test(r.src||'');};function=
 p(q,r){var =
s=3Dq.createFakeParserElement(r,'cke_flash','flash',true),t=3Ds.attribute=
s.style||'',u=3Dr.attributes.width,v=3Dr.attributes.height;
if(typeof =
u!=3D'undefined')t=3Ds.attributes.style=3Dt+'width:'+n(u)+';';if(typeof =
v!=3D'undefined')t=3Ds.attributes.style=3Dt+'height:'+n(v)+';';return =
s;};j.add('flash',{init:function(q){q.addCommand('flash',new =
a.dialogCommand('flash'));q.ui.addButton('Flash',{label:q.lang.common.fla=
sh,command:'flash'});a.dialog.add('flash',this.path+'dialogs/flash.js');q=
.addCss('img.cke_flash{background-image: =
url('+a.getUrl(this.path+'images/placeholder.png')+');'+'background-posit=
ion: center center;'+'background-repeat: no-repeat;'+'border: 1px solid =
#a9a9a9;'+'width: 80px;'+'height: =
80px;'+'}');if(q.addMenuItems)q.addMenuItems({flash:{label:q.lang.flash.p=
roperties,command:'flash',group:'flash'}});q.on('doubleclick',function(r)=
{var =
s=3Dr.data.element;if(s.is('img')&&s.getAttribute('_cke_real_element_type=
')=3D=3D'flash')r.data.dialog=3D'flash';});if(q.contextMenu)q.contextMenu=
.addListener(function(r,s){if(r&&r.is('img')&&!r.isReadOnly()&&r.getAttri=
bute('_cke_real_element_type')=3D=3D'flash')return{flash:2};});},afterIni=
t:function(q){var =
r=3Dq.dataProcessor,s=3Dr&&r.dataFilter;if(s)s.addRules({elements:{'cke:o=
bject':function(t){var =
u=3Dt.attributes,v=3Du.classid&&String(u.classid).toLowerCase();if(!v){fo=
r(var =
w=3D0;w<t.children.length;w++){if(t.children[w].name=3D=3D'cke:embed'){if=
(!o(t.children[w]))return null;return p(q,t);}}return null;}return =
p(q,t);},'cke:embed':function(t){if(!o(t))return null;return =
p(q,t);}}},5);},requires:['fakeobjects']});})();e.extend(i,{flashEmbedTag=
Only:false,flashAddEmbedTag:true,flashConvertOnEdit:false});(function(){f=
unction l(m,n,o,p,q,r,s){var =
t=3Dm.config,u=3Dq.split(';'),v=3D[],w=3D{};for(var =
x=3D0;x<u.length;x++){var y=3Du[x];if(y){y=3Dy.split('/');var =
z=3D{},A=3Du[x]=3Dy[0];z[o]=3Dv[x]=3Dy[1]||A;w[A]=3Dnew =
a.style(s,z);w[A]._.definition.name=3DA;}else =
u.splice(x--,1);}m.ui.addRichCombo(n,{label:p.label,title:p.panelTitle,cl=
assName:'cke_'+(o=3D=3D'size'?'fontSize':'font'),panel:{css:m.skin.editor=
.css.concat(t.contentsCss),multiSelect:false,attributes:{'aria-label':p.p=
anelTitle}},init:function(){this.startGroup(p.panelTitle);for(var =
B=3D0;B<u.length;B++){var =
C=3Du[B];this.add(C,w[C].buildPreview(),C);}},onClick:function(B){m.focus=
();m.fire('saveSnapshot');var =
C=3Dw[B];if(this.getValue()=3D=3DB)C.remove(m.document);else =
C.apply(m.document);m.fire('saveSnapshot');},onRender:function(){m.on('se=
lectionChange',function(B){var =
C=3Dthis.getValue(),D=3DB.data.path,E=3DD.elements;for(var =
F=3D0,G;F<E.length;F++){G=3DE[F];for(var H in =
w){if(w[H].checkElementRemovable(G,true)){if(H!=3DC)this.setValue(H);retu=
rn;}}}this.setValue('',r);},this);
}});};j.add('font',{requires:['richcombo','styles'],init:function(m){var =
n=3Dm.config;l(m,'Font','family',m.lang.font,n.font_names,n.font_defaultL=
abel,n.font_style);l(m,'FontSize','size',m.lang.fontSize,n.fontSize_sizes=
,n.fontSize_defaultLabel,n.fontSize_style);}});})();i.font_names=3D'Arial=
/Arial, Helvetica, sans-serif;Comic Sans MS/Comic Sans MS, =
cursive;Courier New/Courier New, Courier, monospace;Georgia/Georgia, =
serif;Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, =
sans-serif;Tahoma/Tahoma, Geneva, sans-serif;Times New Roman/Times New =
Roman, Times, serif;Trebuchet MS/Trebuchet MS, Helvetica, =
sans-serif;Verdana/Verdana, Geneva, =
sans-serif';i.font_defaultLabel=3D'';i.font_style=3D{element:'span',style=
s:{'font-family':'#(family)'},overrides:[{element:'font',attributes:{face=
:null}}]};i.fontSize_sizes=3D'8/8px;9/9px;10/10px;11/11px;12/12px;14/14px=
;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;=
72/72px';i.fontSize_defaultLabel=3D'';i.fontSize_style=3D{element:'span',=
styles:{'font-size':'#(size)'},overrides:[{element:'font',attributes:{siz=
e:null}}]};j.add('format',{requires:['richcombo','styles'],init:function(=
l){var =
m=3Dl.config,n=3Dl.lang.format,o=3Dm.format_tags.split(';'),p=3D{};for(va=
r q=3D0;q<o.length;q++){var r=3Do[q];p[r]=3Dnew =
a.style(m['format_'+r]);p[r]._.enterMode=3Dl.config.enterMode;}l.ui.addRi=
chCombo('Format',{label:n.label,title:n.panelTitle,className:'cke_format'=
,panel:{css:l.skin.editor.css.concat(m.contentsCss),multiSelect:false,att=
ributes:{'aria-label':n.panelTitle}},init:function(){this.startGroup(n.pa=
nelTitle);for(var s in p){var =
t=3Dn['tag_'+s];this.add(s,'<'+s+'>'+t+'</'+s+'>',t);}},onClick:function(=
s){l.focus();l.fire('saveSnapshot');p[s].apply(l.document);setTimeout(fun=
ction(){l.fire('saveSnapshot');},0);},onRender:function(){l.on('selection=
Change',function(s){var t=3Dthis.getValue(),u=3Ds.data.path;for(var v in =
p){if(p[v].checkActive(u)){if(v!=3Dt)this.setValue(v,l.lang.format['tag_'=
+v]);return;}}this.setValue('');},this);}});}});i.format_tags=3D'p;h1;h2;=
h3;h4;h5;h6;pre;address;div';i.format_p=3D{element:'p'};i.format_div=3D{e=
lement:'div'};i.format_pre=3D{element:'pre'};i.format_address=3D{element:=
'address'};i.format_h1=3D{element:'h1'};i.format_h2=3D{element:'h2'};i.fo=
rmat_h3=3D{element:'h3'};i.format_h4=3D{element:'h4'};i.format_h5=3D{elem=
ent:'h5'};i.format_h6=3D{element:'h6'};j.add('forms',{init:function(l){va=
r m=3Dl.lang;l.addCss('form{border: 1px dotted #FF0000;padding: =
2px;}\n');l.addCss('img.cke_hidden{background-image: =
url('+a.getUrl(this.path+'images/hiddenfield.gif')+');'+'background-posit=
ion: center center;'+'background-repeat: no-repeat;'+'border: 1px solid =
#a9a9a9;'+'width: 16px !important;'+'height: 16px !important;'+'}');
var n=3Dfunction(p,q,r){l.addCommand(q,new =
a.dialogCommand(q));l.ui.addButton(p,{label:m.common[p.charAt(0).toLowerC=
ase()+p.slice(1)],command:q});a.dialog.add(q,r);},o=3Dthis.path+'dialogs/=
';n('Form','form',o+'form.js');n('Checkbox','checkbox',o+'checkbox.js');n=
('Radio','radio',o+'radio.js');n('TextField','textfield',o+'textfield.js'=
);n('Textarea','textarea',o+'textarea.js');n('Select','select',o+'select.=
js');n('Button','button',o+'button.js');n('ImageButton','imagebutton',j.g=
etPath('image')+'dialogs/image.js');n('HiddenField','hiddenfield',o+'hidd=
enfield.js');if(l.addMenuItems)l.addMenuItems({form:{label:m.form.menu,co=
mmand:'form',group:'form'},checkbox:{label:m.checkboxAndRadio.checkboxTit=
le,command:'checkbox',group:'checkbox'},radio:{label:m.checkboxAndRadio.r=
adioTitle,command:'radio',group:'radio'},textfield:{label:m.textfield.tit=
le,command:'textfield',group:'textfield'},hiddenfield:{label:m.hidden.tit=
le,command:'hiddenfield',group:'hiddenfield'},imagebutton:{label:m.image.=
titleButton,command:'imagebutton',group:'imagebutton'},button:{label:m.bu=
tton.title,command:'button',group:'button'},select:{label:m.select.title,=
command:'select',group:'select'},textarea:{label:m.textarea.title,command=
:'textarea',group:'textarea'}});if(l.contextMenu){l.contextMenu.addListen=
er(function(p){if(p&&p.hasAscendant('form',true)&&!p.isReadOnly())return{=
form:2};});l.contextMenu.addListener(function(p){if(p&&!p.isReadOnly()){v=
ar =
q=3Dp.getName();if(q=3D=3D'select')return{select:2};if(q=3D=3D'textarea')=
return{textarea:2};if(q=3D=3D'input'){var =
r=3Dp.getAttribute('type');if(r=3D=3D'text'||r=3D=3D'password')return{tex=
tfield:2};if(r=3D=3D'button'||r=3D=3D'submit'||r=3D=3D'reset')return{butt=
on:2};if(r=3D=3D'checkbox')return{checkbox:2};if(r=3D=3D'radio')return{ra=
dio:2};if(r=3D=3D'image')return{imagebutton:2};}if(q=3D=3D'img'&&p.getAtt=
ribute('_cke_real_element_type')=3D=3D'hiddenfield')return{hiddenfield:2}=
;}});}l.on('doubleclick',function(p){var =
q=3Dp.data.element;if(q.is('form'))p.data.dialog=3D'form';else =
if(q.is('select'))p.data.dialog=3D'select';else =
if(q.is('textarea'))p.data.dialog=3D'textarea';else =
if(q.is('img')&&q.getAttribute('_cke_real_element_type')=3D=3D'hiddenfiel=
d')p.data.dialog=3D'hiddenfield';else if(q.is('input')){var =
r=3Dq.getAttribute('type');switch(r){case 'text':case =
'password':p.data.dialog=3D'textfield';break;case 'button':case =
'submit':case 'reset':p.data.dialog=3D'button';break;case =
'checkbox':p.data.dialog=3D'checkbox';break;case =
'radio':p.data.dialog=3D'radio';break;case =
'image':p.data.dialog=3D'imagebutton';break;}}});},afterInit:function(l){=
var m=3Dl.dataProcessor,n=3Dm&&m.htmlFilter,o=3Dm&&m.dataFilter;
if(c)n&&n.addRules({elements:{input:function(p){var =
q=3Dp.attributes,r=3Dq.type;if(r=3D=3D'checkbox'||r=3D=3D'radio')q.value=3D=
=3D'on'&&delete =
q.value;}}});if(o)o.addRules({elements:{input:function(p){if(p.attributes=
.type=3D=3D'hidden')return =
l.createFakeParserElement(p,'cke_hidden','hiddenfield');}}});},requires:[=
'image','fakeobjects']});if(c)h.prototype.hasAttribute=3Dfunction(l){var =
o=3Dthis;var =
m=3Do.$.attributes.getNamedItem(l);if(o.getName()=3D=3D'input')switch(l){=
case 'class':return o.$.className.length>0;case =
'checked':return!!o.$.checked;case 'value':var =
n=3Do.getAttribute('type');if(n=3D=3D'checkbox'||n=3D=3D'radio')return =
o.$.value!=3D'on';break;default:}return!!(m&&m.specified);};(function(){v=
ar =
l=3D{canUndo:false,exec:function(n){n.insertElement(n.document.createElem=
ent('hr'));}},m=3D'horizontalrule';j.add(m,{init:function(n){n.addCommand=
(m,l);n.ui.addButton('HorizontalRule',{label:n.lang.horizontalrule,comman=
d:m});}});})();(function(){var l=3D/^[\t\r\n =
]*(?:&nbsp;|\xa0)$/,m=3D'{cke_protected}';function n(R){var =
S=3DR.children.length,T=3DR.children[S-1];while(T&&T.type=3D=3D3&&!e.trim=
(T.value))T=3DR.children[--S];return T;};function o(R,S){var =
T=3DR.children,U=3Dn(R);if(U){if((S||!c)&&U.type=3D=3D1&&U.name=3D=3D'br'=
)T.pop();if(U.type=3D=3D3&&l.test(U.value))T.pop();}};function p(R){var =
S=3Dn(R);return!S||S.type=3D=3D1&&S.name=3D=3D'br'||R.name=3D=3D'form'&&S=
.name=3D=3D'input';};function q(R){o(R,true);if(p(R))if(c)R.add(new =
a.htmlParser.text('\xa0'));else R.add(new =
a.htmlParser.element('br',{}));};function r(R){o(R);if(p(R))R.add(new =
a.htmlParser.text('\xa0'));};var =
s=3Df,t=3De.extend({},s.$block,s.$listItem,s.$tableContent);for(var u in =
t){if(!('br' in s[u]))delete t[u];}delete t.pre;var =
v=3D{elements:{},attributeNames:[[/^on/,'_cke_pa_on']]},w=3D{elements:{}}=
;for(u in t)w.elements[u]=3Dq;var =
x=3D{elementNames:[[/^cke:/,''],[/^\?xml:namespace$/,'']],attributeNames:=
[[/^_cke_(saved|pa)_/,''],[/^_cke.*/,''],['hidefocus','']],elements:{$:fu=
nction(R){var S=3DR.attributes;if(S){if(S.cke_temp)return false;var =
T=3D['name','href','src'],U;for(var =
V=3D0;V<T.length;V++){U=3D'_cke_saved_'+T[V];U in S&&delete =
S[T[V]];}}return R;},embed:function(R){var =
S=3DR.parent;if(S&&S.name=3D=3D'object'){var =
T=3DS.attributes.width,U=3DS.attributes.height;T&&(R.attributes.width=3DT=
);U&&(R.attributes.height=3DU);}},param:function(R){R.children=3D[];R.isE=
mpty=3Dtrue;return =
R;},a:function(R){if(!(R.children.length||R.attributes.name||R.attributes=
._cke_saved_name))return false;},html:function(R){delete =
R.attributes.contenteditable;delete =
R.attributes['class'];},body:function(R){delete R.attributes.spellcheck;
delete R.attributes.contenteditable;},style:function(R){var =
S=3DR.children[0];S&&S.value&&(S.value=3De.trim(S.value));if(!R.attribute=
s.type)R.attributes.type=3D'text/css';},title:function(R){var =
S=3DR.children[0];S&&(S.value=3DR.attributes._cke_title||'');}},attribute=
s:{'class':function(R,S){return =
e.ltrim(R.replace(/(?:^|\s+)cke_[^\s]*/g,''))||false;}},comment:function(=
R){if(R.substr(0,m.length)=3D=3Dm){if(R.substr(m.length,3)=3D=3D'{C}')R=3D=
R.substr(m.length+3);else R=3DR.substr(m.length);return new =
a.htmlParser.cdata(decodeURIComponent(R));}return =
R;}},y=3D{elements:{}};for(u in =
t)y.elements[u]=3Dr;if(c)x.attributes.style=3Dfunction(R,S){return =
R.toLowerCase();};function =
z(R){R.attributes.contenteditable=3D'false';};function A(R){delete =
R.attributes.contenteditable;};for(u in =
{input:1,textarea:1}){v.elements[u]=3Dz;x.elements[u]=3DA;}var =
B=3D/<((?:a|area|img|input)[\s\S]*?\s)((href|src|name)\s*=3D\s*(?:(?:"[^"=
]*")|(?:'[^']*')|(?:[^ =
"'>]+)))([^>]*)>/gi,C=3D/\s_cke_saved_src\s*=3D/,D=3D/(?:<style(?=3D[ =
>])[^>]*>[\s\S]*<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,E=3D/<cke:enc=
oded>([^<]*)<\/cke:encoded>/gi,F=3D/(<\/?)((?:object|embed|param|html|bod=
y|head|title)[^>]*>)/gi,G=3D/(<\/?)cke:((?:html|body|head|title)[^>]*>)/g=
i,H=3D/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi;function =
I(R){return =
R.replace(B,function(S,T,U,V,W){if(V=3D=3D'src'&&C.test(S))return S;else =
return '<'+T+U+' _cke_saved_'+U+W+'>';});};function J(R){return =
R.replace(D,function(S){return =
'<cke:encoded>'+encodeURIComponent(S)+'</cke:encoded>';});};function =
K(R){return R.replace(E,function(S,T){return =
decodeURIComponent(T);});};function L(R){return =
R.replace(F,'$1cke:$2');};function M(R){return =
R.replace(G,'$1$2');};function N(R){return =
R.replace(H,'<cke:$1$2></cke:$1>');};function O(R){return =
R.replace(/<!--(?!{cke_protected})[\s\S]+?-->/g,function(S){return =
'<!--'+m+'{C}'+encodeURIComponent(S).replace(/--/g,'%2D%2D')+'-->';});};f=
unction P(R){return =
R.replace(/<!--\{cke_protected\}\{C\}([\s\S]+?)-->/g,function(S,T){return=
 decodeURIComponent(T);});};function Q(R,S){var =
T=3D[],U=3D/<\!--\{cke_temp(comment)?\}(\d*?)-->/g,V=3D[/<script[\s\S]*?<=
\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi].concat(S);R=3DR.replace(/=
<!--[\s\S]*?-->/g,function(X){return =
'<!--{cke_tempcomment}'+(T.push(X)-1)+'-->';});for(var =
W=3D0;W<V.length;W++)R=3DR.replace(V[W],function(X){X=3DX.replace(U,funct=
ion(Y,Z,aa){return T[aa];});return =
'<!--{cke_temp}'+(T.push(X)-1)+'-->';});R=3DR.replace(U,function(X,Y,Z){r=
eturn =
'<!--'+m+(Y?'{C}':'')+encodeURIComponent(T[Z]).replace(/--/g,'%2D%2D')+'-=
->';
});return =
R;};j.add('htmldataprocessor',{requires:['htmlwriter'],init:function(R){v=
ar S=3DR.dataProcessor=3Dnew =
a.htmlDataProcessor(R);S.writer.forceSimpleAmpersand=3DR.config.forceSimp=
leAmpersand;S.dataFilter.addRules(v);S.dataFilter.addRules(w);S.htmlFilte=
r.addRules(x);S.htmlFilter.addRules(y);}});a.htmlDataProcessor=3Dfunction=
(R){var S=3Dthis;S.editor=3DR;S.writer=3Dnew =
a.htmlWriter();S.dataFilter=3Dnew =
a.htmlParser.filter();S.htmlFilter=3Dnew =
a.htmlParser.filter();};a.htmlDataProcessor.prototype=3D{toHtml:function(=
R,S){R=3DQ(R,this.editor.config.protectedSource);R=3DI(R);R=3DJ(R);R=3DL(=
R);R=3DN(R);var T=3Dnew =
h('div');T.setHtml('a'+R);R=3DT.getHtml().substr(1);R=3DM(R);R=3DK(R);R=3D=
P(R);var U=3Da.htmlParser.fragment.fromHtml(R,S),V=3Dnew =
a.htmlParser.basicWriter();U.writeHtml(V,this.dataFilter);R=3DV.getHtml(t=
rue);R=3DO(R);return R;},toDataFormat:function(R,S){var =
T=3Dthis.writer,U=3Da.htmlParser.fragment.fromHtml(R,S);T.reset();U.write=
Html(T,this.htmlFilter);return =
T.getHtml(true);}};})();i.forceSimpleAmpersand=3Dfalse;j.add('image',{ini=
t:function(l){var =
m=3D'image';a.dialog.add(m,this.path+'dialogs/image.js');l.addCommand(m,n=
ew =
a.dialogCommand(m));l.ui.addButton('Image',{label:l.lang.common.image,com=
mand:m});l.on('doubleclick',function(n){var =
o=3Dn.data.element;if(o.is('img')&&!o.getAttribute('_cke_realelement'))n.=
data.dialog=3D'image';});if(l.addMenuItems)l.addMenuItems({image:{label:l=
.lang.image.menu,command:'image',group:'image'}});if(l.contextMenu)l.cont=
extMenu.addListener(function(n,o){if(!n||!n.is('img')||n.getAttribute('_c=
ke_realelement')||n.isReadOnly())return =
null;return{image:2};});}});i.image_removeLinkByEmptyURL=3Dtrue;(function=
(){var =
l=3D{ol:1,ul:1},m=3Dd.walker.whitespaces(true),n=3Dd.walker.bookmark(fals=
e,true);function o(t,u){t.getCommand(this.name).setState(u);};function =
p(t){var C=3Dthis;var =
u=3Dt.editor,v=3Dt.data.path,w=3Dv&&v.contains(l);if(w)return =
o.call(C,u,2);if(!C.useIndentClasses&&C.name=3D=3D'indent')return =
o.call(C,u,2);var x=3Dt.data.path,y=3Dx.block||x.blockLimit;if(!y)return =
o.call(C,u,0);if(C.useIndentClasses){var =
z=3Dy.$.className.match(C.classNameRegex),A=3D0;if(z){z=3Dz[1];A=3DC.inde=
ntClassMap[z];}if(C.name=3D=3D'outdent'&&!A||C.name=3D=3D'indent'&&A=3D=3D=
u.config.indentClasses.length)return o.call(C,u,0);return =
o.call(C,u,2);}else{var =
B=3DparseInt(y.getStyle(r(y)),10);if(isNaN(B))B=3D0;if(B<=3D0)return =
o.call(C,u,0);return o.call(C,u,2);}};function q(t,u){var =
w=3Dthis;w.name=3Du;w.useIndentClasses=3Dt.config.indentClasses&&t.config=
.indentClasses.length>0;if(w.useIndentClasses){w.classNameRegex=3Dnew =
RegExp('(?:^|\\s+)('+t.config.indentClasses.join('|')+')(?=3D$|\\s)');
w.indentClassMap=3D{};for(var =
v=3D0;v<t.config.indentClasses.length;v++)w.indentClassMap[t.config.inden=
tClasses[v]]=3Dv+1;}w.startDisabled=3Du=3D=3D'outdent';};function =
r(t){return =
t.getComputedStyle('direction')=3D=3D'ltr'?'margin-left':'margin-right';}=
;function s(t){return =
t.type=3D1&&t.is('li');};q.prototype=3D{exec:function(t){var =
u=3Dthis,v=3D{};function w(N){var =
O=3DC.startContainer,P=3DC.endContainer;while(O&&!O.getParent().equals(N)=
)O=3DO.getParent();while(P&&!P.getParent().equals(N))P=3DP.getParent();if=
(!O||!P)return;var =
Q=3DO,R=3D[],S=3Dfalse;while(!S){if(Q.equals(P))S=3Dtrue;R.push(Q);Q=3DQ.=
getNext();}if(R.length<1)return;var T=3DN.getParents(true);for(var =
U=3D0;U<T.length;U++){if(T[U].getName&&l[T[U].getName()]){N=3DT[U];break;=
}}var =
V=3Du.name=3D=3D'indent'?1:-1,W=3DR[0],X=3DR[R.length-1],Y=3Dj.list.listT=
oArray(N,v),Z=3DY[X.getCustomData('listarray_index')].indent;for(U=3DW.ge=
tCustomData('listarray_index');U<=3DX.getCustomData('listarray_index');U+=
+){Y[U].indent+=3DV;var aa=3DY[U].parent;Y[U].parent=3Dnew =
h(aa.getName(),aa.getDocument());}for(U=3DX.getCustomData('listarray_inde=
x')+1;U<Y.length&&Y[U].indent>Z;U++)Y[U].indent+=3DV;var =
ab=3DN.getAttribute('dir')||N.getStyle('direction'),ac=3Dj.list.arrayToLi=
st(Y,v,null,t.config.enterMode,ab);if(u.name=3D=3D'outdent'){var =
ad;if((ad=3DN.getParent())&&ad.is('li')){var =
ae=3Dac.listNode.getChildren(),af=3D[],ag=3Dae.count(),ah;for(U=3Dag-1;U>=
=3D0;U--){if((ah=3Dae.getItem(U))&&ah.is&&ah.is('li'))af.push(ah);}}}if(a=
c)ac.listNode.replace(N);if(af&&af.length)for(U=3D0;U<af.length;U++){var =
ai=3Daf[U],aj=3Dai;while((aj=3Daj.getNext())&&aj.is&&aj.getName() in =
l){if(c&&!ai.getFirst(function(ak){return =
m(ak)&&n(ak);}))ai.append(C.document.createText('\xa0'));ai.append(aj);}a=
i.insertAfter(ad);}};function x(){var =
N=3DC.createIterator(),O=3Dt.config.enterMode;N.enforceRealBlocks=3Dtrue;=
N.enlargeBr=3DO!=3D2;var =
P;while(P=3DN.getNextParagraph())y(P);};function =
y(N){if(N.getCustomData('indent_processed'))return =
false;if(u.useIndentClasses){var =
O=3DN.$.className.match(u.classNameRegex),P=3D0;if(O){O=3DO[1];P=3Du.inde=
ntClassMap[O];}if(u.name=3D=3D'outdent')P--;else P++;if(P<0)return =
false;P=3DMath.min(P,t.config.indentClasses.length);P=3DMath.max(P,0);var=
 =
Q=3De.ltrim(N.$.className.replace(u.classNameRegex,''));if(P<1)N.$.classN=
ame=3DQ;else N.addClass(t.config.indentClasses[P-1]);}else{var =
R=3Dr(N),S=3DparseInt(N.getStyle(R),10);if(isNaN(S))S=3D0;S+=3D(u.name=3D=
=3D'indent'?1:-1)*t.config.indentOffset;if(S<0)return =
false;S=3DMath.max(S,0);S=3DMath.ceil(S/t.config.indentOffset)*t.config.i=
ndentOffset;N.setStyle(R,S?S+t.config.indentUnit:'');if(N.getAttribute('s=
tyle')=3D=3D=3D'')N.removeAttribute('style');
}h.setMarker(v,N,'indent_processed',true);return true;};var =
z=3Dt.getSelection(),A=3Dz.createBookmarks(true),B=3Dz&&z.getRanges(true)=
,C,D=3Dfunction(N){return!N.hasAttribute('_cke_bookmark');},E=3DB.createI=
terator();while(C=3DE.getNextRange()){C.shrink(1);if(C.endContainer.getNa=
me()=3D=3D'body')C.setEndAt(C.endContainer.getLast(D),2);var =
F=3DC.startContainer,G=3DC.endContainer,H=3DC.getCommonAncestor(),I=3DH;w=
hile(I&&!(I.type=3D=3D1&&l[I.getName()]))I=3DI.getParent();if(I&&F.type=3D=
=3D1&&F.getName() in l){var J=3Dnew =
d.walker(C);J.evaluator=3Ds;C.startContainer=3DJ.next();}if(I&&G.type=3D=3D=
1&&G.getName() in l){J=3Dnew =
d.walker(C);J.evaluator=3Ds;C.endContainer=3DJ.previous();}if(I){var =
K=3DI.getFirst(function(N){return =
N.type=3D=3D1&&N.is('li');}),L=3DC.startContainer,M=3DK.equals(L)||K.cont=
ains(L);if(!(M&&y(I)))w(I);}else =
x();}h.clearAllMarkers(v);t.forceNextSelectionCheck();z.selectBookmarks(A=
);}};j.add('indent',{init:function(t){var u=3Dnew q(t,'indent'),v=3Dnew =
q(t,'outdent');t.addCommand('indent',u);t.addCommand('outdent',v);t.ui.ad=
dButton('Indent',{label:t.lang.indent,command:'indent'});t.ui.addButton('=
Outdent',{label:t.lang.outdent,command:'outdent'});t.on('selectionChange'=
,e.bind(p,u));t.on('selectionChange',e.bind(p,v));if(b.ie6Compat||b.ie7Co=
mpat)t.addCss('ul,ol{\tmargin-left: 0px;\tpadding-left: =
40px;}');},requires:['domiterator','list']});})();e.extend(i,{indentOffse=
t:40,indentUnit:'px',indentClasses:null});(function(){function =
l(p,q){var =
r=3Dq.block||q.blockLimit;if(!r||r.getName()=3D=3D'body')return 2;return =
m(r,p.config.useComputedState)=3D=3Dthis.value?1:2;};function =
m(p,q){q=3Dq=3D=3D=3Dundefined||q;var =
r;if(q)r=3Dp.getComputedStyle('text-align');else{while(!p.hasAttribute||!=
(p.hasAttribute('align')||p.getStyle('text-align'))){var =
s=3Dp.getParent();if(!s)break;p=3Ds;}r=3Dp.getStyle('text-align')||p.getA=
ttribute('align')||'';}r&&(r=3Dr.replace(/-moz-|-webkit-|start|auto/i,'')=
);!r&&q&&(r=3Dp.getComputedStyle('direction')=3D=3D'rtl'?'right':'left');=
return r;};function n(p){var =
q=3Dp.editor.getCommand(this.name);q.state=3Dl.call(this,p.editor,p.data.=
path);q.fire('state');};function o(p,q,r){var =
t=3Dthis;t.name=3Dq;t.value=3Dr;var =
s=3Dp.config.justifyClasses;if(s){switch(r){case =
'left':t.cssClassName=3Ds[0];break;case =
'center':t.cssClassName=3Ds[1];break;case =
'right':t.cssClassName=3Ds[2];break;case =
'justify':t.cssClassName=3Ds[3];break;}t.cssClassRegex=3Dnew =
RegExp('(?:^|\\s+)(?:'+s.join('|')+')(?=3D$|\\s)');}};o.prototype=3D{exec=
:function(p){var B=3Dthis;var =
q=3Dp.getSelection(),r=3Dp.config.enterMode;if(!q)return;var =
s=3Dq.createBookmarks(),t=3Dq.getRanges(true),u=3DB.cssClassName,v,w,x=3D=
p.config.useComputedState;
x=3Dx=3D=3D=3Dundefined||x;for(var =
y=3Dt.length-1;y>=3D0;y--){v=3Dt[y].createIterator();v.enlargeBr=3Dr!=3D2=
;while(w=3Dv.getNextParagraph()){w.removeAttribute('align');w.removeStyle=
('text-align');var =
z=3Du&&(w.$.className=3De.ltrim(w.$.className.replace(B.cssClassRegex,'')=
)),A=3DB.state=3D=3D2&&(!x||m(w,true)!=3DB.value);if(u){if(A)w.addClass(u=
);else if(!z)w.removeAttribute('class');}else =
if(A)w.setStyle('text-align',B.value);}}p.focus();p.forceNextSelectionChe=
ck();q.selectBookmarks(s);}};j.add('justify',{init:function(p){var =
q=3Dnew o(p,'justifyleft','left'),r=3Dnew =
o(p,'justifycenter','center'),s=3Dnew =
o(p,'justifyright','right'),t=3Dnew =
o(p,'justifyblock','justify');p.addCommand('justifyleft',q);p.addCommand(=
'justifycenter',r);p.addCommand('justifyright',s);p.addCommand('justifybl=
ock',t);p.ui.addButton('JustifyLeft',{label:p.lang.justify.left,command:'=
justifyleft'});p.ui.addButton('JustifyCenter',{label:p.lang.justify.cente=
r,command:'justifycenter'});p.ui.addButton('JustifyRight',{label:p.lang.j=
ustify.right,command:'justifyright'});p.ui.addButton('JustifyBlock',{labe=
l:p.lang.justify.block,command:'justifyblock'});p.on('selectionChange',e.=
bind(n,q));p.on('selectionChange',e.bind(n,s));p.on('selectionChange',e.b=
ind(n,r));p.on('selectionChange',e.bind(n,t));},requires:['domiterator']}=
);})();e.extend(i,{justifyClasses:null});j.add('keystrokes',{beforeInit:f=
unction(l){l.keystrokeHandler=3Dnew =
a.keystrokeHandler(l);l.specialKeys=3D{};},init:function(l){var =
m=3Dl.config.keystrokes,n=3Dl.config.blockedKeystrokes,o=3Dl.keystrokeHan=
dler.keystrokes,p=3Dl.keystrokeHandler.blockedKeystrokes;for(var =
q=3D0;q<m.length;q++)o[m[q][0]]=3Dm[q][1];for(q=3D0;q<n.length;q++)p[n[q]=
]=3D1;}});a.keystrokeHandler=3Dfunction(l){var =
m=3Dthis;if(l.keystrokeHandler)return =
l.keystrokeHandler;m.keystrokes=3D{};m.blockedKeystrokes=3D{};m._=3D{edit=
or:l};return m;};(function(){var l,m=3Dfunction(o){o=3Do.data;var =
p=3Do.getKeystroke(),q=3Dthis.keystrokes[p],r=3Dthis._.editor;l=3Dr.fire(=
'key',{keyCode:p})=3D=3D=3Dtrue;if(!l){if(q){var =
s=3D{from:'keystrokeHandler'};l=3Dr.execCommand(q,s)!=3D=3Dfalse;}if(!l){=
var =
t=3Dr.specialKeys[p];l=3Dt&&t(r)=3D=3D=3Dtrue;if(!l)l=3D!!this.blockedKey=
strokes[p];}}if(l)o.preventDefault(true);return!l;},n=3Dfunction(o){if(l)=
{l=3Dfalse;o.data.preventDefault(true);}};a.keystrokeHandler.prototype=3D=
{attach:function(o){o.on('keydown',m,this);if(b.opera||b.gecko&&b.mac)o.o=
n('keypress',n,this);}};})();i.blockedKeystrokes=3D[1000+66,1000+73,1000+=
85];i.keystrokes=3D[[4000+121,'toolbarFocus'],[4000+122,'elementsPathFocu=
s'],[2000+121,'contextMenu'],[1000+2000+121,'contextMenu'],[1000+90,'undo=
'],[1000+89,'redo'],[1000+2000+90,'redo'],[1000+76,'link'],[1000+66,'bold=
'],[1000+73,'italic'],[1000+85,'underline'],[4000+109,'toolbarCollapse'],=
[4000+48,'a11yHelp']];
j.add('link',{init:function(l){l.addCommand('link',new =
a.dialogCommand('link'));l.addCommand('anchor',new =
a.dialogCommand('anchor'));l.addCommand('unlink',new =
a.unlinkCommand());l.ui.addButton('Link',{label:l.lang.link.toolbar,comma=
nd:'link'});l.ui.addButton('Unlink',{label:l.lang.unlink,command:'unlink'=
});l.ui.addButton('Anchor',{label:l.lang.anchor.toolbar,command:'anchor'}=
);a.dialog.add('link',this.path+'dialogs/link.js');a.dialog.add('anchor',=
this.path+'dialogs/anchor.js');l.addCss('img.cke_anchor{background-image:=
 =
url('+a.getUrl(this.path+'images/anchor.gif')+');'+'background-position: =
center center;'+'background-repeat: no-repeat;'+'border: 1px solid =
#a9a9a9;'+'width: 18px !important;'+'height: 18px =
!important;'+'}\n'+'a.cke_anchor'+'{'+'background-image: =
url('+a.getUrl(this.path+'images/anchor.gif')+');'+'background-position: =
0 center;'+'background-repeat: no-repeat;'+'border: 1px solid =
#a9a9a9;'+'padding-left: =
18px;'+'}');l.on('selectionChange',function(m){var =
n=3Dl.getCommand('unlink'),o=3Dm.data.path.lastElement&&m.data.path.lastE=
lement.getAscendant('a',true);if(o&&o.getName()=3D=3D'a'&&o.getAttribute(=
'href'))n.setState(2);else =
n.setState(0);});l.on('doubleclick',function(m){var =
n=3Dj.link.getSelectedLink(l)||m.data.element;if(n.is('a'))m.data.dialog=3D=
n.getAttribute('name')&&!n.getAttribute('href')?'anchor':'link';else =
if(n.is('img')&&n.getAttribute('_cke_real_element_type')=3D=3D'anchor')m.=
data.dialog=3D'anchor';});if(l.addMenuItems)l.addMenuItems({anchor:{label=
:l.lang.anchor.menu,command:'anchor',group:'anchor'},link:{label:l.lang.l=
ink.menu,command:'link',group:'link',order:1},unlink:{label:l.lang.unlink=
,command:'unlink',group:'link',order:5}});if(l.contextMenu)l.contextMenu.=
addListener(function(m,n){if(!m||m.isReadOnly())return null;var =
o=3Dm.is('img')&&m.getAttribute('_cke_real_element_type')=3D=3D'anchor';i=
f(!o){if(!(m=3Dj.link.getSelectedLink(l)))return =
null;o=3Dm.getAttribute('name')&&!m.getAttribute('href');}return =
o?{anchor:2}:{link:2,unlink:2};});},afterInit:function(l){var =
m=3Dl.dataProcessor,n=3Dm&&m.dataFilter;if(n)n.addRules({elements:{a:func=
tion(o){var p=3Do.attributes;if(p.name&&!p.href)return =
l.createFakeParserElement(o,'cke_anchor','anchor');}}});},requires:['fake=
objects']});j.link=3D{getSelectedLink:function(l){try{var =
m=3Dl.getSelection();if(m.getType()=3D=3D3){var =
n=3Dm.getSelectedElement();if(n.is('a'))return n;}var =
o=3Dm.getRanges(true)[0];o.shrink(2);var =
p=3Do.getCommonAncestor();return =
p.getAscendant('a',true);}catch(q){return =
null;}}};a.unlinkCommand=3Dfunction(){};a.unlinkCommand.prototype=3D{exec=
:function(l){var =
m=3Dl.getSelection(),n=3Dm.createBookmarks(),o=3Dm.getRanges(),p,q;
for(var =
r=3D0;r<o.length;r++){p=3Do[r].getCommonAncestor(true);q=3Dp.getAscendant=
('a',true);if(!q)continue;o[r].selectNodeContents(q);}m.selectRanges(o);l=
.document.$.execCommand('unlink',false,null);m.selectBookmarks(n);},start=
Disabled:true};e.extend(i,{linkShowAdvancedTab:true,linkShowTargetTab:tru=
e});(function(){var l=3D{ol:1,ul:1},m=3D/^[\n\r\t =
]*$/;j.list=3D{listToArray:function(B,C,D,E,F){if(!l[B.getName()])return[=
];if(!E)E=3D0;if(!D)D=3D[];for(var =
G=3D0,H=3DB.getChildCount();G<H;G++){var =
I=3DB.getChild(G);if(I.$.nodeName.toLowerCase()!=3D'li')continue;var =
J=3D{parent:B,indent:E,element:I,contents:[]};if(!F){J.grandparent=3DB.ge=
tParent();if(J.grandparent&&J.grandparent.$.nodeName.toLowerCase()=3D=3D'=
li')J.grandparent=3DJ.grandparent.getParent();}else =
J.grandparent=3DF;if(C)h.setMarker(C,I,'listarray_index',D.length);D.push=
(J);for(var =
K=3D0,L=3DI.getChildCount(),M;K<L;K++){M=3DI.getChild(K);if(M.type=3D=3D1=
&&l[M.getName()])j.list.listToArray(M,C,D,E+1,J.grandparent);else =
J.contents.push(M);}}return =
D;},arrayToList:function(B,C,D,E,F){if(!D)D=3D0;if(!B||B.length<D+1)retur=
n null;var G=3DB[D].parent.getDocument(),H=3Dnew =
d.documentFragment(G),I=3Dnull,J=3DD,K=3DMath.max(B[D].indent,0),L=3Dnull=
,M=3DE=3D=3D1?'p':'div';for(;;){var =
N=3DB[J];if(N.indent=3D=3DK){if(!I||B[J].parent.getName()!=3DI.getName())=
{I=3DB[J].parent.clone(false,true);H.append(I);}L=3DI.append(N.element.cl=
one(false,true));for(var =
O=3D0;O<N.contents.length;O++)L.append(N.contents[O].clone(true,true));J+=
+;}else if(N.indent=3D=3DMath.max(K,0)+1){var =
P=3Dj.list.arrayToList(B,null,J,E);L.append(P.listNode);J=3DP.nextIndex;}=
else =
if(N.indent=3D=3D-1&&!D&&N.grandparent){L;if(l[N.grandparent.getName()])L=
=3DN.element.clone(false,true);else =
if(F||E!=3D2&&N.grandparent.getName()!=3D'td'){L=3DG.createElement(M);if(=
F)L.setAttribute('dir',F);}else L=3Dnew =
d.documentFragment(G);for(O=3D0;O<N.contents.length;O++)L.append(N.conten=
ts[O].clone(true,true));if(L.type=3D=3D11&&J!=3DB.length-1){if(L.getLast(=
)&&L.getLast().type=3D=3D1&&L.getLast().getAttribute('type')=3D=3D'_moz')=
L.getLast().remove();L.appendBogus();}if(L.type=3D=3D1&&L.getName()=3D=3D=
M&&L.$.firstChild){L.trim();var =
Q=3DL.getFirst();if(Q.type=3D=3D1&&Q.isBlockBoundary()){var R=3Dnew =
d.documentFragment(G);L.moveChildren(R);L=3DR;}}var =
S=3DL.$.nodeName.toLowerCase();if(!c&&(S=3D=3D'div'||S=3D=3D'p'))L.append=
Bogus();H.append(L);I=3Dnull;J++;}else return =
null;if(B.length<=3DJ||Math.max(B[J].indent,0)<K)break;}if(C){var =
T=3DH.getFirst();while(T){if(T.type=3D=3D1)h.clearMarkers(C,T);T=3DT.getN=
extSourceNode();}}return{listNode:H,nextIndex:J};}};function =
n(B,C){B.getCommand(this.name).setState(C);};function o(B){var =
C=3DB.data.path,D=3DC.blockLimit,E=3DC.elements,F;
for(var =
G=3D0;G<E.length&&(F=3DE[G])&&!F.equals(D);G++){if(l[E[G].getName()])retu=
rn n.call(this,B.editor,this.type=3D=3DE[G].getName()?1:2);}return =
n.call(this,B.editor,2);};function p(B,C,D,E){var =
F=3Dj.list.listToArray(C.root,D),G=3D[];for(var =
H=3D0;H<C.contents.length;H++){var =
I=3DC.contents[H];I=3DI.getAscendant('li',true);if(!I||I.getCustomData('l=
ist_item_processed'))continue;G.push(I);h.setMarker(D,I,'list_item_proces=
sed',true);}var =
J=3DC.root,K=3DJ.getDocument().createElement(this.type);J.copyAttributes(=
K,{start:1,type:1});K.removeStyle('list-style-type');for(H=3D0;H<G.length=
;H++){var L=3DG[H].getCustomData('listarray_index');F[L].parent=3DK;}var =
M=3Dj.list.arrayToList(F,D,null,B.config.enterMode),N,O=3DM.listNode.getC=
hildCount();for(H=3D0;H<O&&(N=3DM.listNode.getChild(H));H++){if(N.getName=
()=3D=3Dthis.type)E.push(N);}M.listNode.replace(C.root);};var =
q=3D/^h[1-6]$/;function r(B,C,D){var =
E=3DC.contents,F=3DC.root.getDocument(),G=3D[];if(E.length=3D=3D1&&E[0].e=
quals(C.root)){var =
H=3DF.createElement('div');E[0].moveChildren&&E[0].moveChildren(H);E[0].a=
ppend(H);E[0]=3DH;}var I=3DC.contents[0].getParent();for(var =
J=3D0;J<E.length;J++)I=3DI.getCommonAncestor(E[J].getParent());for(J=3D0;=
J<E.length;J++){var =
K=3DE[J],L;while(L=3DK.getParent()){if(L.equals(I)){G.push(K);break;}K=3D=
L;}}if(G.length<1)return;var =
M=3DG[G.length-1].getNext(),N=3DF.createElement(this.type),O;D.push(N);wh=
ile(G.length){var =
P=3DG.shift(),Q=3DF.createElement('li');if(P.is('pre')||q.test(P.getName(=
)))P.appendTo(Q);else{if(P.hasAttribute('dir')){O=3DO||P.getAttribute('di=
r');P.removeAttribute('dir');}P.copyAttributes(Q);P.moveChildren(Q);P.rem=
ove();if(!c)Q.appendBogus();}Q.appendTo(N);}if(O)N.setAttribute('dir',O);=
if(M)N.insertBefore(M);else N.appendTo(I);};function s(B,C,D){var =
E=3Dj.list.listToArray(C.root,D),F=3D[];for(var =
G=3D0;G<C.contents.length;G++){var =
H=3DC.contents[G];H=3DH.getAscendant('li',true);if(!H||H.getCustomData('l=
ist_item_processed'))continue;F.push(H);h.setMarker(D,H,'list_item_proces=
sed',true);}var I=3Dnull;for(G=3D0;G<F.length;G++){var =
J=3DF[G].getCustomData('listarray_index');E[J].indent=3D-1;I=3DJ;}for(G=3D=
I+1;G<E.length;G++){if(E[G].indent>E[G-1].indent+1){var =
K=3DE[G-1].indent+1-E[G].indent,L=3DE[G].indent;while(E[G]&&E[G].indent>=3D=
L){E[G].indent+=3DK;G++;}G--;}}var =
M=3Dj.list.arrayToList(E,D,null,B.config.enterMode,C.root.getAttribute('d=
ir')),N=3DM.listNode,O,P;function =
Q(R){if((O=3DN[R?'getFirst':'getLast']())&&!(O.is&&O.isBlockBoundary())&&=
(P=3DC.root[R?'getPrevious':'getNext'](d.walker.whitespaces(true)))&&!(P.=
is&&P.isBlockBoundary({br:1})))B.document.createElement('br')[R?'insertBe=
fore':'insertAfter'](O);
};Q(true);Q();N.replace(C.root);};function =
t(B,C){this.name=3DB;this.type=3DC;};t.prototype=3D{exec:function(B){B.fo=
cus();var =
C=3DB.document,D=3DB.getSelection(),E=3DD&&D.getRanges(true);if(!E||E.len=
gth<1)return;if(this.state=3D=3D2){var =
F=3DC.getBody();F.trim();if(!F.getFirst()){var =
G=3DC.createElement(B.config.enterMode=3D=3D1?'p':B.config.enterMode=3D=3D=
3?'div':'br');G.appendTo(F);E=3Dnew d.rangeList([new =
d.range(C)]);if(G.is('br')){E[0].setStartBefore(G);E[0].setEndAfter(G);}e=
lse E[0].selectNodeContents(G);D.selectRanges(E);}else{var =
H=3DE.length=3D=3D1&&E[0],I=3DH&&H.getEnclosedNode();if(I&&I.is&&this.typ=
e=3D=3DI.getName())n.call(this,B,1);}}var =
J=3DD.createBookmarks(true),K=3D[],L=3D{},M=3DE.createIterator(),N=3D0;wh=
ile((H=3DM.getNextRange())&&++N){var =
O=3DH.getBoundaryNodes(),P=3DO.startNode,Q=3DO.endNode;if(P.type=3D=3D1&&=
P.getName()=3D=3D'td')H.setStartAt(O.startNode,1);if(Q.type=3D=3D1&&Q.get=
Name()=3D=3D'td')H.setEndAt(O.endNode,2);var =
R=3DH.createIterator(),S;R.forceBrBreak=3Dthis.state=3D=3D2;while(S=3DR.g=
etNextParagraph()){if(S.getCustomData('list_block'))continue;else =
h.setMarker(L,S,'list_block',1);var T=3Dnew =
d.elementPath(S),U=3DT.elements,V=3DU.length,W=3Dnull,X=3Dfalse,Y=3DT.blo=
ckLimit,Z;for(var =
aa=3DV-1;aa>=3D0&&(Z=3DU[aa]);aa--){if(l[Z.getName()]&&Y.contains(Z)){Y.r=
emoveCustomData('list_group_object_'+N);var =
ab=3DZ.getCustomData('list_group_object');if(ab)ab.contents.push(S);else{=
ab=3D{root:Z,contents:[S]};K.push(ab);h.setMarker(L,Z,'list_group_object'=
,ab);}X=3Dtrue;break;}}if(X)continue;var =
ac=3DY;if(ac.getCustomData('list_group_object_'+N))ac.getCustomData('list=
_group_object_'+N).contents.push(S);else{ab=3D{root:ac,contents:[S]};h.se=
tMarker(L,ac,'list_group_object_'+N,ab);K.push(ab);}}}var =
ad=3D[];while(K.length>0){ab=3DK.shift();if(this.state=3D=3D2){if(l[ab.ro=
ot.getName()])p.call(this,B,ab,L,ad);else r.call(this,B,ab,ad);}else =
if(this.state=3D=3D1&&l[ab.root.getName()])s.call(this,B,ab,L);}for(aa=3D=
0;aa<ad.length;aa++){W=3Dad[aa];var ae,af=3Dthis;(ae=3Dfunction(ag){var =
ah=3DW[ag?'getPrevious':'getNext'](d.walker.whitespaces(true));if(ah&&ah.=
getName&&ah.getName()=3D=3Daf.type){ah.remove();ah.moveChildren(W,ag?true=
:false);}})();ae(true);}h.clearAllMarkers(L);D.selectBookmarks(J);B.focus=
();}};var u=3Df,v=3D/[\t\r\n ]*(?:&nbsp;|\xa0)$/;function w(B,C){var =
D,E=3DB.children,F=3DE.length;for(var =
G=3D0;G<F;G++){D=3DE[G];if(D.name&&D.name in C)return G;}return =
F;};function x(B){return function(C){var =
D=3DC.children,E=3Dw(C,u.$list),F=3DD[E],G=3DF&&F.previous,H;if(G&&(G.nam=
e&&G.name=3D=3D'br'||G.value&&(H=3DG.value.match(v)))){var =
I=3DG;if(!(H&&H.index)&&I=3D=3DD[0])D[0]=3DB||c?new =
a.htmlParser.text('\xa0'):new a.htmlParser.element('br',{});
else if(I.name=3D=3D'br')D.splice(E-1,1);else =
I.value=3DI.value.replace(v,'');}};};var y=3D{elements:{}};for(var z in =
u.$listItem)y.elements[z]=3Dx();var A=3D{elements:{}};for(z in =
u.$listItem)A.elements[z]=3Dx(true);j.add('list',{init:function(B){var =
C=3Dnew t('numberedlist','ol'),D=3Dnew =
t('bulletedlist','ul');B.addCommand('numberedlist',C);B.addCommand('bulle=
tedlist',D);B.ui.addButton('NumberedList',{label:B.lang.numberedlist,comm=
and:'numberedlist'});B.ui.addButton('BulletedList',{label:B.lang.bulleted=
list,command:'bulletedlist'});B.on('selectionChange',e.bind(o,C));B.on('s=
electionChange',e.bind(o,D));},afterInit:function(B){var =
C=3DB.dataProcessor;if(C){C.dataFilter.addRules(y);C.htmlFilter.addRules(=
A);}},requires:['domiterator']});})();(function(){j.liststyle=3D{requires=
:['dialog'],init:function(l){l.addCommand('numberedListStyle',new =
a.dialogCommand('numberedListStyle'));a.dialog.add('numberedListStyle',th=
is.path+'dialogs/liststyle.js');l.addCommand('bulletedListStyle',new =
a.dialogCommand('bulletedListStyle'));a.dialog.add('bulletedListStyle',th=
is.path+'dialogs/liststyle.js');if(l.addMenuItems){l.addMenuGroup('list',=
108);l.addMenuItems({numberedlist:{label:l.lang.list.numberedTitle,group:=
'list',command:'numberedListStyle'},bulletedlist:{label:l.lang.list.bulle=
tedTitle,group:'list',command:'bulletedListStyle'}});}if(l.contextMenu)l.=
contextMenu.addListener(function(m,n){if(!m||m.isReadOnly())return =
null;while(m){var =
o=3Dm.getName();if(o=3D=3D'ol')return{numberedlist:2};else =
if(o=3D=3D'ul')return{bulletedlist:2};m=3Dm.getParent();}return =
null;});}};j.add('liststyle',j.liststyle);})();(function(){function =
l(r){if(!r||r.type!=3D1||r.getName()!=3D'form')return[];var =
s=3D[],t=3D['style','className'];for(var u=3D0;u<t.length;u++){var =
v=3Dt[u],w=3Dr.$.elements.namedItem(v);if(w){var x=3Dnew =
h(w);s.push([x,x.nextSibling]);x.remove();}}return s;};function =
m(r,s){if(!r||r.type!=3D1||r.getName()!=3D'form')return;if(s.length>0)for=
(var t=3Ds.length-1;t>=3D0;t--){var =
u=3Ds[t][0],v=3Ds[t][1];if(v)u.insertBefore(v);else =
u.appendTo(r);}};function n(r,s){var =
t=3Dl(r),u=3D{},v=3Dr.$;if(!s){u['class']=3Dv.className||'';v.className=3D=
'';}u.inline=3Dv.style.cssText||'';if(!s)v.style.cssText=3D'position: =
static; overflow: visible';m(t);return u;};function o(r,s){var =
t=3Dl(r),u=3Dr.$;if('class' in s)u.className=3Ds['class'];if('inline' in =
s)u.style.cssText=3Ds.inline;m(t);};function p(r){var =
s=3Da.instances;for(var t in s){var =
u=3Ds[t];if(u.mode=3D=3D'wysiwyg'){var =
v=3Du.document.getBody();v.setAttribute('contentEditable',false);v.setAtt=
ribute('contentEditable',true);}}if(r.focusManager.hasFocus){r.toolbox.fo=
cus();
r.focus();}};function q(r){if(!c||b.version>6)return null;var =
s=3Dh.createFromHtml('<iframe frameborder=3D"0" tabindex=3D"-1" =
src=3D"javascript:void((function(){document.open();'+(b.isCustomDomain()?=
"document.domain=3D'"+this.getDocument().$.domain+"';":'')+'document.clos=
e();'+'})())"'+' =
style=3D"display:block;position:absolute;z-index:-1;'+'progid:DXImageTran=
sform.Microsoft.Alpha(opacity=3D0);'+'"></iframe>');return =
r.append(s,true);};j.add('maximize',{init:function(r){var =
s=3Dr.lang,t=3Da.document,u=3Dt.getWindow(),v,w,x,y;function z(){var =
B=3Du.getViewPaneSize();y&&y.setStyles({width:B.width+'px',height:B.heigh=
t+'px'});r.resize(B.width,B.height,null,true);};var =
A=3D2;r.addCommand('maximize',{modes:{wysiwyg:1,source:1},editorFocus:fal=
se,exec:function(){var =
B=3Dr.container.getChild(1),C=3Dr.getThemeSpace('contents');if(r.mode=3D=3D=
'wysiwyg'){var =
D=3Dr.getSelection();v=3DD&&D.getRanges();w=3Du.getScrollPosition();}else=
{var =
E=3Dr.textarea.$;v=3D!c&&[E.selectionStart,E.selectionEnd];w=3D[E.scrollL=
eft,E.scrollTop];}if(this.state=3D=3D2){u.on('resize',z);x=3Du.getScrollP=
osition();var =
F=3Dr.container;while(F=3DF.getParent()){F.setCustomData('maximize_saved_=
styles',n(F));F.setStyle('z-index',r.config.baseFloatZIndex-1);}C.setCust=
omData('maximize_saved_styles',n(C,true));B.setCustomData('maximize_saved=
_styles',n(B,true));if(c)t.$.documentElement.style.overflow=3Dt.getBody()=
.$.style.overflow=3D'hidden';else =
t.getBody().setStyles({overflow:'hidden',width:'0px',height:'0px'});c?set=
Timeout(function(){u.$.scrollTo(0,0);},0):u.$.scrollTo(0,0);var =
G=3Du.getViewPaneSize();B.setStyle('position','absolute');B.$.offsetLeft;=
B.setStyles({'z-index':r.config.baseFloatZIndex-1,left:'0px',top:'0px'});=
y=3Dq(B);B.addClass('cke_maximized');z();var =
H=3DB.getDocumentPosition();B.setStyles({left:-1*H.x+'px',top:-1*H.y+'px'=
});b.gecko&&p(r);}else =
if(this.state=3D=3D1){u.removeListener('resize',z);var I=3D[C,B];for(var =
J=3D0;J<I.length;J++){o(I[J],I[J].getCustomData('maximize_saved_styles'))=
;I[J].removeCustomData('maximize_saved_styles');}F=3Dr.container;while(F=3D=
F.getParent()){o(F,F.getCustomData('maximize_saved_styles'));F.removeCust=
omData('maximize_saved_styles');}c?setTimeout(function(){u.$.scrollTo(x.x=
,x.y);},0):u.$.scrollTo(x.x,x.y);B.removeClass('cke_maximized');if(y){y.r=
emove();y=3Dnull;}r.fire('resize');}this.toggleState();var =
K=3Dthis.uiItems[0],L=3Dthis.state=3D=3D2?s.maximize:s.minimize,M=3Dr.ele=
ment.getDocument().getById(K._.id);M.getChild(1).setHtml(L);M.setAttribut=
e('title',L);M.setAttribute('href','javascript:void("'+L+'");');if(r.mode=
=3D=3D'wysiwyg'){if(v){b.gecko&&p(r);
r.getSelection().selectRanges(v);var =
N=3Dr.getSelection().getStartElement();N&&N.scrollIntoView(true);}else =
u.$.scrollTo(w.x,w.y);}else{if(v){E.selectionStart=3Dv[0];E.selectionEnd=3D=
v[1];}E.scrollLeft=3Dw[0];E.scrollTop=3Dw[1];}v=3Dw=3Dnull;A=3Dthis.state=
;},canUndo:false});r.ui.addButton('Maximize',{label:s.maximize,command:'m=
aximize'});r.on('mode',function(){r.getCommand('maximize').setState(A);},=
null,null,100);}});})();j.add('newpage',{init:function(l){l.addCommand('n=
ewpage',{modes:{wysiwyg:1,source:1},exec:function(m){var =
n=3Dthis;m.setData(m.config.newpage_html,function(){setTimeout(function()=
{m.fire('afterCommandExec',{name:n.name,command:n});},200);});m.focus();}=
,async:true});l.ui.addButton('NewPage',{label:l.lang.newPage,command:'new=
page'});}});i.newpage_html=3D'';j.add('pagebreak',{init:function(l){l.add=
Command('pagebreak',j.pagebreakCmd);l.ui.addButton('PageBreak',{label:l.l=
ang.pagebreak,command:'pagebreak'});l.addCss('img.cke_pagebreak{backgroun=
d-image: =
url('+a.getUrl(this.path+'images/pagebreak.gif')+');'+'background-positio=
n: center center;'+'background-repeat: no-repeat;'+'clear: =
both;'+'display: block;'+'float: none;'+'width:100% !important; =
_width:99.9% !important;'+'border-top: #999999 1px =
dotted;'+'border-bottom: #999999 1px dotted;'+'height: 5px =
!important;'+'page-break-after: =
always;'+'}');},afterInit:function(l){var =
m=3Dl.dataProcessor,n=3Dm&&m.dataFilter;if(n)n.addRules({elements:{div:fu=
nction(o){var =
p=3Do.attributes,q=3Dp&&p.style,r=3Dq&&o.children.length=3D=3D1&&o.childr=
en[0],s=3Dr&&r.name=3D=3D'span'&&r.attributes.style;if(s&&/page-break-aft=
er\s*:\s*always/i.test(q)&&/display\s*:\s*none/i.test(s)){var =
t=3Dl.createFakeParserElement(o,'cke_pagebreak','div'),u=3Dl.lang.pagebre=
akAlt;t.attributes.alt=3Du;t.attributes['aria-label']=3Du;return =
t;}}}});},requires:['fakeobjects']});j.pagebreakCmd=3D{exec:function(l){v=
ar m=3Dl.lang.pagebreakAlt,n=3Dh.createFromHtml('<div =
style=3D"page-break-after: always;"><span style=3D"display: =
none;">&nbsp;</span></div>');n=3Dl.createFakeElement(n,'cke_pagebreak','d=
iv');n.setAttribute('alt',m);n.setAttribute('aria-label',m);var =
o=3Dl.getSelection().getRanges(true);l.fire('saveSnapshot');for(var =
p,q=3Do.length-1;q>=3D0;q--){p=3Do[q];if(q<o.length-1)n=3Dn.clone(true);p=
.splitBlock('p');p.insertNode(n);if(q=3D=3Do.length-1){p.moveToPosition(n=
,4);p.select();}var =
r=3Dn.getPrevious();if(r&&f[r.getName()].div)n.move(r);}l.fire('saveSnaps=
hot');}};(function(){j.add('pastefromword',{init:function(l){var =
m=3D0,n=3Dfunction(){setTimeout(function(){m=3D0;},0);};l.addCommand('pas=
tefromword',{canUndo:false,exec:function(){m=3D1;
if(l.execCommand('paste')=3D=3D=3Dfalse)l.on('dialogHide',function(o){o.r=
emoveListener();n();});else =
n();}});l.ui.addButton('PasteFromWord',{label:l.lang.pastefromword.toolba=
r,command:'pastefromword'});l.on('paste',function(o){var =
p=3Do.data,q;if((q=3Dp.html)&&(m||/(class=3D\"?Mso|style=3D\"[^\"]*\bmso\=
-|w:WordDocument)/.test(q))){var =
r=3Dthis.loadFilterRules(function(){if(r)l.fire('paste',p);else =
if(!l.config.pasteFromWordPromptCleanup||m||confirm(l.lang.pastefromword.=
confirmCleanup))p.html=3Da.cleanWord(q,l);});r&&o.cancel();}},this);},loa=
dFilterRules:function(l){var m=3Da.cleanWord;if(m)l();else{var =
n=3Da.getUrl(i.pasteFromWordCleanupFile||this.path+'filter/default.js');a=
.scriptLoader.load(n,l,null,false,true);}return!m;}});})();(function(){va=
r l=3D{exec:function(o){var p=3De.tryThese(function(){var =
q=3Dwindow.clipboardData.getData('Text');if(!q)throw 0;return =
q;});if(!p){o.openDialog('pastetext');return false;}else =
o.fire('paste',{text:p});return true;}};function m(o,p){if(c){var =
q=3Do.selection;if(q.type=3D=3D'Control')q.clear();q.createRange().pasteH=
TML(p);}else =
o.execCommand('inserthtml',false,p);};j.add('pastetext',{init:function(o)=
{var =
p=3D'pastetext',q=3Do.addCommand(p,l);o.ui.addButton('PasteText',{label:o=
.lang.pasteText.button,command:p});a.dialog.add(p,a.getUrl(this.path+'dia=
logs/pastetext.js'));if(o.config.forcePasteAsPlainText)o.on('beforeComman=
dExec',function(r){if(r.data.name=3D=3D'paste'){o.execCommand('pastetext'=
);r.cancel();}},null,null,0);},requires:['clipboard']});function =
n(o,p,q,r){while(q--)j.enterkey[p=3D=3D2?'enterBr':'enterBlock'](o,p,null=
,r);};a.editor.prototype.insertText=3Dfunction(o){this.focus();this.fire(=
'saveSnapshot');var =
p=3Dthis.getSelection().getStartElement().hasAscendant('pre',true)?2:this=
.config.enterMode,q=3Dp=3D=3D2,r=3Dthis.document.$,s=3Dthis,t;o=3De.htmlE=
ncode(o.replace(/\r\n|\r/g,'\n'));var =
u=3D0;o.replace(/\n+/g,function(v,w){t=3Do.substring(u,w);u=3Dw+v.length;=
t.length&&m(r,t);var =
x=3Dv.length,y=3Dq?0:Math.floor(x/2),z=3Dq?x:x%2;n(s,p,y);n(s,2,z,q?false=
:true);});t=3Do.substring(u,o.length);t.length&&m(r,t);this.fire('saveSna=
pshot');};})();j.add('popup');e.extend(a.editor.prototype,{popup:function=
(l,m,n,o){m=3Dm||'80%';n=3Dn||'70%';if(typeof =
m=3D=3D'string'&&m.length>1&&m.substr(m.length-1,1)=3D=3D'%')m=3DparseInt=
(window.screen.width*parseInt(m,10)/100,10);if(typeof =
n=3D=3D'string'&&n.length>1&&n.substr(n.length-1,1)=3D=3D'%')n=3DparseInt=
(window.screen.height*parseInt(n,10)/100,10);if(m<640)m=3D640;if(n<420)n=3D=
420;var =
p=3DparseInt((window.screen.height-n)/2,10),q=3DparseInt((window.screen.w=
idth-m)/2,10);o=3D(o||'location=3Dno,menubar=3Dno,toolbar=3Dno,dependent=3D=
yes,minimizable=3Dno,modal=3Dyes,alwaysRaised=3Dyes,resizable=3Dyes,scrol=
lbars=3Dyes')+',width=3D'+m+',height=3D'+n+',top=3D'+p+',left=3D'+q;
var r=3Dwindow.open('',null,o,true);if(!r)return =
false;try{r.moveTo(q,p);r.resizeTo(m,n);r.focus();r.location.href=3Dl;}ca=
tch(s){r=3Dwindow.open(l,null,o,true);}return true;}});(function(){var =
l=3D{modes:{wysiwyg:1,source:1},canUndo:false,exec:function(n){var =
o,p=3Dn.config,q=3Dp.baseHref?'<base =
href=3D"'+p.baseHref+'"/>':'',r=3Db.isCustomDomain();if(p.fullPage)o=3Dn.=
getData().replace(/<head>/,'$&'+q).replace(/[^>]*(?=3D<\/title>)/,n.lang.=
preview);else{var s=3D'<body =
',t=3Dn.document&&n.document.getBody();if(t){if(t.getAttribute('id'))s+=3D=
'id=3D"'+t.getAttribute('id')+'" =
';if(t.getAttribute('class'))s+=3D'class=3D"'+t.getAttribute('class')+'" =
';}s+=3D'>';o=3Dn.config.docType+'<html =
dir=3D"'+n.config.contentsLangDirection+'">'+'<head>'+q+'<title>'+n.lang.=
preview+'</title>'+e.buildStyleHtml(n.config.contentsCss)+'</head>'+s+n.g=
etData()+'</body></html>';}var u=3D640,v=3D420,w=3D80;try{var =
x=3Dwindow.screen;u=3DMath.round(x.width*0.8);v=3DMath.round(x.height*0.7=
);w=3DMath.round(x.width*0.1);}catch(A){}var =
y=3D'';if(r){window._cke_htmlToLoad=3Do;y=3D'javascript:void( =
(function(){document.open();document.domain=3D"'+document.domain+'";'+'do=
cument.write( window.opener._cke_htmlToLoad =
);'+'document.close();'+'window.opener._cke_htmlToLoad =3D null;'+'})() =
)';}var =
z=3Dwindow.open(y,null,'toolbar=3Dyes,location=3Dno,status=3Dyes,menubar=3D=
yes,scrollbars=3Dyes,resizable=3Dyes,width=3D'+u+',height=3D'+v+',left=3D=
'+w);if(!r){z.document.open();z.document.write(o);z.document.close();}}},=
m=3D'preview';j.add(m,{init:function(n){n.addCommand(m,l);n.ui.addButton(=
'Preview',{label:n.lang.preview,command:m});}});})();j.add('print',{init:=
function(l){var =
m=3D'print',n=3Dl.addCommand(m,j.print);l.ui.addButton('Print',{label:l.l=
ang.print,command:m});}});j.print=3D{exec:function(l){if(b.opera)return;e=
lse if(b.gecko)l.window.$.print();else =
l.document.$.execCommand('Print');},canUndo:false,modes:{wysiwyg:!b.opera=
}};j.add('removeformat',{requires:['selection'],init:function(l){l.addCom=
mand('removeFormat',j.removeformat.commands.removeformat);l.ui.addButton(=
'RemoveFormat',{label:l.lang.removeFormat,command:'removeFormat'});l._.re=
moveFormat=3D{filters:[]};}});j.removeformat=3D{commands:{removeformat:{e=
xec:function(l){var =
m=3Dl._.removeFormatRegex||(l._.removeFormatRegex=3Dnew =
RegExp('^(?:'+l.config.removeFormatTags.replace(/,/g,'|')+')$','i')),n=3D=
l._.removeAttributes||(l._.removeAttributes=3Dl.config.removeFormatAttrib=
utes.split(',')),o=3Dj.removeformat.filter,p=3Dl.getSelection().getRanges=
(true),q=3Dp.createIterator(),r;while(r=3Dq.getNextRange()){if(r.collapse=
d)continue;r.enlarge(1);var =
s=3Dr.createBookmark(),t=3Ds.startNode,u=3Ds.endNode,v=3Dfunction(y){var =
z=3Dnew d.elementPath(y),A=3Dz.elements;
for(var =
B=3D1,C;C=3DA[B];B++){if(C.equals(z.block)||C.equals(z.blockLimit))break;=
if(m.test(C.getName())&&o(l,C))y.breakParent(C);}};v(t);v(u);var =
w=3Dt.getNextSourceNode(true,1);while(w){if(w.equals(u))break;var =
x=3Dw.getNextSourceNode(false,1);if(!(w.getName()=3D=3D'img'&&w.getAttrib=
ute('_cke_realelement'))&&o(l,w))if(m.test(w.getName()))w.remove(true);el=
se{w.removeAttributes(n);l.fire('removeFormatCleanup',w);}w=3Dx;}r.moveTo=
Bookmark(s);}l.getSelection().selectRanges(p);}}},filter:function(l,m){va=
r n=3Dl._.removeFormat.filters;for(var =
o=3D0;o<n.length;o++){if(n[o](m)=3D=3D=3Dfalse)return false;}return =
true;}};a.editor.prototype.addRemoveFormatFilter=3Dfunction(l){this._.rem=
oveFormat.filters.push(l);};i.removeFormatTags=3D'b,big,code,del,dfn,em,f=
ont,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var';i.removeF=
ormatAttributes=3D'class,style,lang,width,height,align,hspace,valign';j.a=
dd('resize',{init:function(l){var =
m=3Dl.config;!m.resize_dir&&(m.resize_dir=3D'both');m.resize_maxWidth=3D=3D=
undefined&&(m.resize_maxWidth=3D3000);m.resize_maxHeight=3D=3Dundefined&&=
(m.resize_maxHeight=3D3000);m.resize_minWidth=3D=3Dundefined&&(m.resize_m=
inWidth=3D750);m.resize_minHeight=3D=3Dundefined&&(m.resize_minHeight=3D2=
50);if(m.resize_enabled!=3D=3Dfalse){var =
n=3Dnull,o,p,q=3D(m.resize_dir=3D=3D'both'||m.resize_dir=3D=3D'horizontal=
')&&m.resize_minWidth!=3Dm.resize_maxWidth,r=3D(m.resize_dir=3D=3D'both'|=
|m.resize_dir=3D=3D'vertical')&&m.resize_minHeight!=3Dm.resize_maxHeight;=
function s(v){var =
w=3Dv.data.$.screenX-o.x,x=3Dv.data.$.screenY-o.y,y=3Dp.width,z=3Dp.heigh=
t,A=3Dy+w*(l.lang.dir=3D=3D'rtl'?-1:1),B=3Dz+x;if(q)y=3DMath.max(m.resize=
_minWidth,Math.min(A,m.resize_maxWidth));if(r)z=3DMath.max(m.resize_minHe=
ight,Math.min(B,m.resize_maxHeight));l.resize(y,z);};function =
t(v){a.document.removeListener('mousemove',s);a.document.removeListener('=
mouseup',t);if(l.document){l.document.removeListener('mousemove',s);l.doc=
ument.removeListener('mouseup',t);}};var =
u=3De.addFunction(function(v){if(!n)n=3Dl.getResizable();p=3D{width:n.$.o=
ffsetWidth||0,height:n.$.offsetHeight||0};o=3D{x:v.screenX,y:v.screenY};m=
.resize_minWidth>p.width&&(m.resize_minWidth=3Dp.width);m.resize_minHeigh=
t>p.height&&(m.resize_minHeight=3Dp.height);a.document.on('mousemove',s);=
a.document.on('mouseup',t);if(l.document){l.document.on('mousemove',s);l.=
document.on('mouseup',t);}});l.on('destroy',function(){e.removeFunction(u=
);});l.on('themeSpace',function(v){if(v.data.space=3D=3D'bottom'){var =
w=3D'';if(q&&!r)w=3D' cke_resizer_horizontal';if(!q&&r)w=3D' =
cke_resizer_vertical';v.data.html+=3D'<div class=3D"cke_resizer'+w+'"'+' =
title=3D"'+e.htmlEncode(l.lang.resize)+'"'+' =
onmousedown=3D"CKEDITOR.tools.callFunction('+u+', event)"'+'></div>';
}},l,null,100);}}});(function(){var =
l=3D{modes:{wysiwyg:1,source:1},exec:function(n){var =
o=3Dn.element.$.form;if(o)try{o.submit();}catch(p){if(o.submit.click)o.su=
bmit.click();}}},m=3D'save';j.add(m,{init:function(n){var =
o=3Dn.addCommand(m,l);o.modes=3D{wysiwyg:!!n.element.$.form};n.ui.addButt=
on('Save',{label:n.lang.save,command:m});}});})();(function(){var =
l=3D'scaytcheck',m=3D'';function n(s,t){var u=3Dfalse,v;for(v in =
t){if(t[v]=3D=3D=3Ds||t[v]=3D=3Ds){u=3Dtrue;break;}}return u;};var =
o=3Dfunction(){var s=3Dthis,t=3Dfunction(){var =
x=3D{};x.srcNodeRef=3Ds.document.getWindow().$.frameElement;x.assocApp=3D=
'CKEDITOR.'+a.version+'@'+a.revision;x.customerid=3Ds.config.scayt_custom=
erid||'1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2=
tpq2';x.customDictionaryIds=3Ds.config.scayt_customDictionaryIds||'';x.us=
erDictionaryName=3Ds.config.scayt_userDictionaryName||'';x.sLang=3Ds.conf=
ig.scayt_sLang||'en_US';x.onLoad=3Dfunction(){if(!(c&&b.version<8))this.a=
ddStyle(this.selectorCss(),'padding-bottom: 2px =
!important;');if(s.focusManager.hasFocus&&!p.isControlRestored(s))this.fo=
cus();};x.onBeforeChange=3Dfunction(){if(p.getScayt(s)&&!s.checkDirty())s=
etTimeout(function(){s.resetDirty();},0);};var =
y=3Dwindow.scayt_custom_params;if(typeof y=3D=3D'object')for(var z in =
y)x[z]=3Dy[z];if(p.getControlId(s))x.id=3Dp.getControlId(s);var A=3Dnew =
window.scayt(x);A.afterMarkupRemove.push(function(H){new =
h(H,A.document).mergeSiblings();});var =
B=3Dp.instances[s.name];if(B){A.sLang=3DB.sLang;A.option(B.option());A.pa=
used=3DB.paused;}p.instances[s.name]=3DA;var =
C=3D'scaytButton',D=3Dwindow.scayt.uiTags,E=3D[];for(var =
F=3D0,G=3D4;F<G;F++)E.push(D[F]&&p.uiTabs[F]);p.uiTabs=3DE;try{A.setDisab=
led(p.isPaused(s)=3D=3D=3Dfalse);}catch(H){}s.fire('showScaytState');};s.=
on('contentDom',t);s.on('contentDomUnload',function(){var =
x=3Da.document.getElementsByTag('script'),y=3D/^dojoIoScript(\d+)$/i,z=3D=
/^https?:\/\/svc\.spellchecker\.net\/spellcheck\/script\/ssrv\.cgi/i;for(=
var A=3D0;A<x.count();A++){var =
B=3Dx.getItem(A),C=3DB.getId(),D=3DB.getAttribute('src');if(C&&D&&C.match=
(y)&&D.match(z))B.remove();}});s.on('beforeCommandExec',function(x){if((x=
.data.name=3D=3D'source'||x.data.name=3D=3D'newpage')&&s.mode=3D=3D'wysiw=
yg'){var =
y=3Dp.getScayt(s);if(y){p.setPaused(s,!y.disabled);p.setControlId(s,y.id)=
;y.destroy(true);delete p.instances[s.name];}}else =
if(x.data.name=3D=3D'source'&&s.mode=3D=3D'source')p.markControlRestore(s=
);});s.on('afterCommandExec',function(x){if(!p.isScaytEnabled(s))return;i=
f(s.mode=3D=3D'wysiwyg'&&(x.data.name=3D=3D'undo'||x.data.name=3D=3D'redo=
'))window.setTimeout(function(){p.getScayt(s).refresh();},10);
});s.on('destroy',function(x){var =
y=3Dx.editor,z=3Dp.getScayt(y);if(!z)return;delete =
p.instances[y.name];p.setControlId(y,z.id);z.destroy(true);});s.on('after=
SetData',function(){if(p.isScaytEnabled(s))window.setTimeout(function(){v=
ar =
x=3Dp.getScayt(s);x&&x.refresh();},10);});s.on('insertElement',function()=
{var =
x=3Dp.getScayt(s);if(p.isScaytEnabled(s)){if(c)s.getSelection().unlock(tr=
ue);window.setTimeout(function(){x.focus();x.refresh();},10);}},this,null=
,50);s.on('insertHtml',function(){var =
x=3Dp.getScayt(s);if(p.isScaytEnabled(s)){if(c)s.getSelection().unlock(tr=
ue);window.setTimeout(function(){x.focus();x.refresh();},10);}},this,null=
,50);s.on('scaytDialog',function(x){x.data.djConfig=3Dwindow.djConfig;x.d=
ata.scayt_control=3Dp.getScayt(s);x.data.tab=3Dm;x.data.scayt=3Dwindow.sc=
ayt;});var =
u=3Ds.dataProcessor,v=3Du&&u.htmlFilter;if(v)v.addRules({elements:{span:f=
unction(x){if(x.attributes.scayt_word&&x.attributes.scaytid){delete =
x.name;return x;}}}});var =
w=3Dj.undo.Image.prototype;w.equals=3De.override(w.equals,function(x){ret=
urn function(y){var D=3Dthis;var =
z=3DD.contents,A=3Dy.contents,B=3Dp.getScayt(D.editor);if(B&&p.isScaytRea=
dy(D.editor)){D.contents=3DB.reset(z)||'';y.contents=3DB.reset(A)||'';}va=
r C=3Dx.apply(D,arguments);D.contents=3Dz;y.contents=3DA;return =
C;};});if(s.document)t();};j.scayt=3D{engineLoaded:false,instances:{},con=
trolInfo:{},setControlInfo:function(s,t){if(s&&s.name&&typeof =
this.controlInfo[s.name]!=3D'object')this.controlInfo[s.name]=3D{};for(va=
r u in =
t)this.controlInfo[s.name][u]=3Dt[u];},isControlRestored:function(s){if(s=
&&s.name&&this.controlInfo[s.name])return =
this.controlInfo[s.name].restored;return =
false;},markControlRestore:function(s){this.setControlInfo(s,{restored:tr=
ue});},setControlId:function(s,t){this.setControlInfo(s,{id:t});},getCont=
rolId:function(s){if(s&&s.name&&this.controlInfo[s.name]&&this.controlInf=
o[s.name].id)return this.controlInfo[s.name].id;return =
null;},setPaused:function(s,t){this.setControlInfo(s,{paused:t});},isPaus=
ed:function(s){if(s&&s.name&&this.controlInfo[s.name])return =
this.controlInfo[s.name].paused;return =
undefined;},getScayt:function(s){return =
this.instances[s.name];},isScaytReady:function(s){return =
this.engineLoaded=3D=3D=3Dtrue&&'undefined'!=3D=3Dtypeof =
window.scayt&&this.getScayt(s);},isScaytEnabled:function(s){var =
t=3Dthis.getScayt(s);return =
t?t.disabled=3D=3D=3Dfalse:false;},loadEngine:function(s){if(b.gecko&&b.v=
ersion<10900||b.opera)return =
s.fire('showScaytState');if(this.engineLoaded=3D=3D=3Dtrue)return =
o.apply(s);else if(this.engineLoaded=3D=3D-1)return =
a.on('scaytReady',function(){o.apply(s);
});a.on('scaytReady',o,s);a.on('scaytReady',function(){this.engineLoaded=3D=
true;},this,null,0);this.engineLoaded=3D-1;var =
t=3Ddocument.location.protocol;t=3Dt.search(/https?:/)!=3D-1?t:'http:';va=
r =
u=3D'svc.spellchecker.net/scayt25/loader__base.js',v=3Ds.config.scayt_src=
Url||t+'//'+u,w=3Dp.parseUrl(v).path+'/';if(window.scayt=3D=3Dundefined){=
a._djScaytConfig=3D{baseUrl:w,addOnLoad:[function(){a.fireOnce('scaytRead=
y');}],isDebug:false};a.document.getHead().append(a.document.createElemen=
t('script',{attributes:{type:'text/javascript',async:'true',src:v}}));}el=
se a.fireOnce('scaytReady');return null;},parseUrl:function(s){var =
t;if(s.match&&(t=3Ds.match(/(.*)[\/\\](.*?\.\w+)$/)))return{path:t[1],fil=
e:t[2]};else return s;}};var =
p=3Dj.scayt,q=3Dfunction(s,t,u,v,w,x,y){s.addCommand(v,w);s.addMenuItem(v=
,{label:u,command:v,group:x,order:y});},r=3D{preserveState:true,editorFoc=
us:false,exec:function(s){if(p.isScaytReady(s)){var =
t=3Dp.isScaytEnabled(s);this.setState(t?2:1);var =
u=3Dp.getScayt(s);u.focus();u.setDisabled(t);}else =
if(!s.config.scayt_autoStartup&&p.engineLoaded>=3D0){this.setState(0);p.l=
oadEngine(s);}}};j.add('scayt',{requires:['menubutton'],beforeInit:functi=
on(s){var =
t=3Ds.config.scayt_contextMenuItemsOrder||'suggest|moresuggest|control',u=
=3D'';t=3Dt.split('|');if(t&&t.length)for(var v in =
t)u+=3D'scayt_'+t[v]+(t.length!=3DparseInt(v,10)+1?',':'');s.config.menu_=
groups=3Du+','+s.config.menu_groups;},init:function(s){var =
t=3D{},u=3D{},v=3Ds.addCommand(l,r);a.dialog.add(l,a.getUrl(this.path+'di=
alogs/options.js'));var =
w=3Ds.config.scayt_uiTabs||'1,1,1',x=3D[];w=3Dw.split(',');for(var =
y=3D0,z=3D3;y<z;y++){var A=3DparseInt(w[y]||'1',10);x.push(A);}var =
B=3D'scaytButton';s.addMenuGroup(B);var =
C=3D{};C.scaytToggle=3D{label:s.lang.scayt.enable,command:l,group:B};if(x=
[0]=3D=3D1)C.scaytOptions=3D{label:s.lang.scayt.options,group:B,onClick:f=
unction(){m=3D'options';s.openDialog(l);}};if(x[1]=3D=3D1)C.scaytLangs=3D=
{label:s.lang.scayt.langs,group:B,onClick:function(){m=3D'langs';s.openDi=
alog(l);}};if(x[2]=3D=3D1)C.scaytDict=3D{label:s.lang.scayt.dictionariesT=
ab,group:B,onClick:function(){m=3D'dictionaries';s.openDialog(l);}};C.sca=
ytAbout=3D{label:s.lang.scayt.about,group:B,onClick:function(){m=3D'about=
';s.openDialog(l);}};x[3]=3D1;p.uiTabs=3Dx;s.addMenuItems(C);s.ui.add('Sc=
ayt',5,{label:s.lang.scayt.title,title:b.opera?s.lang.scayt.opera_title:s=
.lang.scayt.title,className:'cke_button_scayt',onRender:function(){v.on('=
state',function(){this.setState(v.state);},this);},onMenu:function(){var =
E=3Dp.isScaytEnabled(s);s.getMenuItem('scaytToggle').label=3Ds.lang.scayt=
[E?'disable':'enable'];
return{scaytToggle:2,scaytOptions:E&&p.uiTabs[0]?2:0,scaytLangs:E&&p.uiTa=
bs[1]?2:0,scaytDict:E&&p.uiTabs[2]?2:0,scaytAbout:E&&p.uiTabs[3]?2:0};}})=
;if(s.contextMenu&&s.addMenuItems)s.contextMenu.addListener(function(E,F)=
{if(!p.isScaytEnabled(s)||F.getCommonAncestor().isReadOnly())return =
null;var G=3Dp.getScayt(s),H=3DG.getScaytNode();if(!H)return null;var =
I=3DG.getWord(H);if(!I)return null;var =
J=3DG.getLang(),K=3D{},L=3Dwindow.scayt.getSuggestion(I,J);if(!L||!L.leng=
th)return null;for(y in t){delete s._.menuItems[y];delete =
s._.commands[y];}for(y in u){delete s._.menuItems[y];delete =
s._.commands[y];}t=3D{};u=3D{};var =
M=3Ds.config.scayt_moreSuggestions||'on',N=3Dfalse,O=3Ds.config.scayt_max=
Suggestions;typeof O!=3D'number'&&(O=3D5);!O&&(O=3DL.length);var =
P=3Ds.config.scayt_contextCommands||'all';P=3DP.split('|');for(var =
Q=3D0,R=3DL.length;Q<R;Q+=3D1){var =
S=3D'scayt_suggestion_'+L[Q].replace(' =
','_'),T=3D(function(X,Y){return{exec:function(){G.replace(X,Y);}};})(H,L=
[Q]);if(Q<O){q(s,'button_'+S,L[Q],S,T,'scayt_suggest',Q+1);K[S]=3D2;u[S]=3D=
2;}else =
if(M=3D=3D'on'){q(s,'button_'+S,L[Q],S,T,'scayt_moresuggest',Q+1);t[S]=3D=
2;N=3Dtrue;}}if(N){s.addMenuItem('scayt_moresuggest',{label:s.lang.scayt.=
moreSuggestions,group:'scayt_moresuggest',order:10,getItems:function(){re=
turn t;}});u.scayt_moresuggest=3D2;}if(n('all',P)||n('ignore',P)){var =
U=3D{exec:function(){G.ignore(H);}};q(s,'ignore',s.lang.scayt.ignore,'sca=
yt_ignore',U,'scayt_control',1);u.scayt_ignore=3D2;}if(n('all',P)||n('ign=
oreall',P)){var =
V=3D{exec:function(){G.ignoreAll(H);}};q(s,'ignore_all',s.lang.scayt.igno=
reAll,'scayt_ignore_all',V,'scayt_control',2);u.scayt_ignore_all=3D2;}if(=
n('all',P)||n('add',P)){var =
W=3D{exec:function(){window.scayt.addWordToUserDictionary(H);}};q(s,'add_=
word',s.lang.scayt.addWord,'scayt_add_word',W,'scayt_control',3);u.scayt_=
add_word=3D2;}if(G.fireOnContextMenu)G.fireOnContextMenu(s);return =
u;});var =
D=3Dfunction(){s.removeListener('showScaytState',D);if(!b.opera)v.setStat=
e(p.isScaytEnabled(s)?1:2);else =
v.setState(0);};s.on('showScaytState',D);if(b.opera)s.on('instanceReady',=
function(){D();});if(s.config.scayt_autoStartup)s.on('instanceReady',func=
tion(){p.loadEngine(s);});},afterInit:function(s){var =
t,u=3Dfunction(v){if(v.hasAttribute('scaytid'))return =
false;};if(s._.elementsPath&&(t=3Ds._.elementsPath.filters))t.push(u);s.a=
ddRemoveFormatFilter&&s.addRemoveFormatFilter(u);}});})();j.add('smiley',=
{requires:['dialog'],init:function(l){l.config.smiley_path=3Dl.config.smi=
ley_path||this.path+'images/';l.addCommand('smiley',new =
a.dialogCommand('smiley'));l.ui.addButton('Smiley',{label:l.lang.smiley.t=
oolbar,command:'smiley'});
a.dialog.add('smiley',this.path+'dialogs/smiley.js');}});i.smiley_images=3D=
['regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile.gif','=
confused_smile.gif','tounge_smile.gif','embaressed_smile.gif','omg_smile.=
gif','whatchutalkingabout_smile.gif','angry_smile.gif','angel_smile.gif',=
'shades_smile.gif','devil_smile.gif','cry_smile.gif','lightbulb.gif','thu=
mbs_down.gif','thumbs_up.gif','heart.gif','broken_heart.gif','kiss.gif','=
envelope.gif'];i.smiley_descriptions=3D['smiley','sad','wink','laugh','fr=
own','cheeky','blush','surprise','indecision','angry','angel','cool','dev=
il','crying','enlightened','no','yes','heart','broken =
heart','kiss','mail'];(function(){var l=3D'.%2 p,.%2 div,.%2 pre,.%2 =
address,.%2 blockquote,.%2 h1,.%2 h2,.%2 h3,.%2 h4,.%2 h5,.%2 =
h6{background-repeat: no-repeat;background-position: top %3;border: 1px =
dotted gray;padding-top: 8px;padding-%3: 8px;}.%2 p{%1p.png);}.%2 =
div{%1div.png);}.%2 pre{%1pre.png);}.%2 address{%1address.png);}.%2 =
blockquote{%1blockquote.png);}.%2 h1{%1h1.png);}.%2 h2{%1h2.png);}.%2 =
h3{%1h3.png);}.%2 h4{%1h4.png);}.%2 h5{%1h5.png);}.%2 =
h6{%1h6.png);}',m=3D/%1/g,n=3D/%2/g,o=3D/%3/g,p=3D{preserveState:true,edi=
torFocus:false,exec:function(q){this.toggleState();this.refresh(q);},refr=
esh:function(q){var =
r=3Dthis.state=3D=3D1?'addClass':'removeClass';q.document.getBody()[r]('c=
ke_show_blocks');}};j.add('showblocks',{requires:['wysiwygarea'],init:fun=
ction(q){var =
r=3Dq.addCommand('showblocks',p);r.canUndo=3Dfalse;if(q.config.startupOut=
lineBlocks)r.setState(1);q.addCss(l.replace(m,'background-image: =
url('+a.getUrl(this.path)+'images/block_').replace(n,'cke_show_blocks =
').replace(o,q.lang.dir=3D=3D'rtl'?'right':'left'));q.ui.addButton('ShowB=
locks',{label:q.lang.showBlocks,command:'showblocks'});q.on('mode',functi=
on(){if(r.state!=3D0)r.refresh(q);});q.on('contentDom',function(){if(r.st=
ate!=3D0)r.refresh(q);});}});})();i.startupOutlineBlocks=3Dfalse;(functio=
n(){var l=3D'cke_show_border',m,n=3D(b.ie6Compat?['.%1 table.%2,','.%1 =
table.%2 td, .%1 table.%2 th,','{','border : #d3d3d3 1px =
dotted','}']:['.%1 table.%2,','.%1 table.%2 > tr > td, .%1 table.%2 > tr =
> th,','.%1 table.%2 > tbody > tr > td, .%1 table.%2 > tbody > tr > =
th,','.%1 table.%2 > thead > tr > td, .%1 table.%2 > thead > tr > =
th,','.%1 table.%2 > tfoot > tr > td, .%1 table.%2 > tfoot > tr > =
th','{','border : #d3d3d3 1px =
dotted','}']).join('');m=3Dn.replace(/%2/g,l).replace(/%1/g,'cke_show_bor=
ders ');var =
o=3D{preserveState:true,editorFocus:false,exec:function(p){this.toggleSta=
te();this.refresh(p);},refresh:function(p){var =
q=3Dthis.state=3D=3D1?'addClass':'removeClass';
p.document.getBody()[q]('cke_show_borders');}};j.add('showborders',{requi=
res:['wysiwygarea'],modes:{wysiwyg:1},init:function(p){var =
q=3Dp.addCommand('showborders',o);q.canUndo=3Dfalse;if(p.config.startupSh=
owBorders!=3D=3Dfalse)q.setState(1);p.addCss(m);p.on('mode',function(){if=
(q.state!=3D0)q.refresh(p);},null,null,100);p.on('contentDom',function(){=
if(q.state!=3D0)q.refresh(p);});p.on('removeFormatCleanup',function(r){va=
r =
s=3Dr.data;if(p.getCommand('showborders').state=3D=3D1&&s.is('table')&&(!=
s.hasAttribute('border')||parseInt(s.getAttribute('border'),10)<=3D0))s.a=
ddClass(l);});},afterInit:function(p){var =
q=3Dp.dataProcessor,r=3Dq&&q.dataFilter,s=3Dq&&q.htmlFilter;if(r)r.addRul=
es({elements:{table:function(t){var =
u=3Dt.attributes,v=3Du['class'],w=3DparseInt(u.border,10);if(!w||w<=3D0)u=
['class']=3D(v||'')+' =
'+l;}}});if(s)s.addRules({elements:{table:function(t){var =
u=3Dt.attributes,v=3Du['class'];v&&(u['class']=3Dv.replace(l,'').replace(=
/\s{2}/,' =
').replace(/^\s+|\s+$/,''));}}});}});a.on('dialogDefinition',function(p){=
var q=3Dp.data.name;if(q=3D=3D'table'||q=3D=3D'tableProperties'){var =
r=3Dp.data.definition,s=3Dr.getContents('info'),t=3Ds.get('txtBorder'),u=3D=
t.commit;t.commit=3De.override(u,function(x){return =
function(y,z){x.apply(this,arguments);var =
A=3DparseInt(this.getValue(),10);z[!A||A<=3D0?'addClass':'removeClass'](l=
);};});var =
v=3Dr.getContents('advanced'),w=3Dv&&v.get('advCSSClasses');if(w){w.setup=
=3De.override(w.setup,function(x){return =
function(){x.apply(this,arguments);this.setValue(this.getValue().replace(=
/cke_show_border/,''));};});w.commit=3De.override(w.commit,function(x){re=
turn =
function(y,z){x.apply(this,arguments);if(!parseInt(z.getAttribute('border=
'),10))z.addClass('cke_show_border');};});}}});})();j.add('sourcearea',{r=
equires:['editingblock'],init:function(l){var =
m=3Dj.sourcearea,n=3Da.document.getWindow();l.on('editingBlockReady',func=
tion(){var =
o,p;l.addMode('source',{load:function(q,r){if(c&&b.version<8)q.setStyle('=
position','relative');l.textarea=3Do=3Dnew =
h('textarea');o.setAttributes({dir:'ltr',tabIndex:b.webkit?-1:l.tabIndex,=
role:'textbox','aria-label':l.lang.editorTitle.replace('%1',l.name)});o.a=
ddClass('cke_source');o.addClass('cke_enable_context_menu');var =
s=3D{width:b.ie7Compat?'99%':'100%',height:'100%',resize:'none',outline:'=
none','text-align':'left'};if(c){p=3Dfunction(){o.hide();o.setStyle('heig=
ht',q.$.clientHeight+'px');o.setStyle('width',q.$.clientWidth+'px');o.sho=
w();};l.on('resize',p);n.on('resize',p);setTimeout(p,0);}else =
o.on('mousedown',function(u){u.data.stopPropagation();});q.setHtml('');q.=
append(o);o.setStyles(s);
l.fire('ariaWidget',o);o.on('blur',function(){l.focusManager.blur();});o.=
on('focus',function(){l.focusManager.focus();});l.mayBeDirty=3Dtrue;this.=
loadData(r);var =
t=3Dl.keystrokeHandler;if(t)t.attach(o);setTimeout(function(){l.mode=3D's=
ource';l.fire('mode');},b.gecko||b.webkit?100:0);},loadData:function(q){o=
.setValue(q);l.fire('dataReady');},getData:function(){return =
o.getValue();},getSnapshotData:function(){return =
o.getValue();},unload:function(q){o.clearCustomData();l.textarea=3Do=3Dnu=
ll;if(p){l.removeListener('resize',p);n.removeListener('resize',p);}if(c&=
&b.version<8)q.removeStyle('position');},focus:function(){o.focus();}});}=
);l.addCommand('source',m.commands.source);if(l.ui.addButton)l.ui.addButt=
on('Source',{label:l.lang.source,command:'source'});l.on('mode',function(=
){l.getCommand('source').setState(l.mode=3D=3D'source'?1:2);});}});j.sour=
cearea=3D{commands:{source:{modes:{wysiwyg:1,source:1},editorFocus:false,=
exec:function(l){if(l.mode=3D=3D'wysiwyg')l.fire('saveSnapshot');l.getCom=
mand('source').setState(0);l.setMode(l.mode=3D=3D'source'?'wysiwyg':'sour=
ce');},canUndo:false}}};(function(){j.add('stylescombo',{requires:['richc=
ombo','styles'],init:function(m){var =
n=3Dm.config,o=3Dm.lang.stylesCombo,p=3D{},q=3D[];function =
r(s){m.getStylesSet(function(t){if(!q.length){var u,v;for(var =
w=3D0;w<t.length;w++){var x=3Dt[w];v=3Dx.name;u=3Dp[v]=3Dnew =
a.style(x);u._name=3Dv;u._.enterMode=3Dn.enterMode;q.push(u);}q.sort(l);}=
s&&s();});};m.ui.addRichCombo('Styles',{label:o.label,title:o.panelTitle,=
className:'cke_styles',panel:{css:m.skin.editor.css.concat(n.contentsCss)=
,multiSelect:true,attributes:{'aria-label':o.panelTitle}},init:function()=
{var s=3Dthis;r(function(){var t,u,v;for(var =
w=3D0;w<q.length;w++){t=3Dq[w];u=3Dt._name;var =
x=3Dt.type;if(x!=3Dv){s.startGroup(o['panelTitle'+String(x)]);v=3Dx;}s.ad=
d(u,t.type=3D=3D3?u:t.buildPreview(),u);}s.commit();s.onOpen();});},onCli=
ck:function(s){m.focus();m.fire('saveSnapshot');var =
t=3Dp[s],u=3Dm.getSelection(),v=3Dnew =
d.elementPath(u.getStartElement());if(t.type=3D=3D2&&t.checkActive(v))t.r=
emove(m.document);else =
if(t.type=3D=3D3&&t.checkActive(v))t.remove(m.document);else =
t.apply(m.document);m.fire('saveSnapshot');},onRender:function(){m.on('se=
lectionChange',function(s){var =
t=3Dthis.getValue(),u=3Ds.data.path,v=3Du.elements;for(var =
w=3D0,x;w<v.length;w++){x=3Dv[w];for(var y in =
p){if(p[y].checkElementRemovable(x,true)){if(y!=3Dt)this.setValue(y);retu=
rn;}}}this.setValue('');},this);},onOpen:function(){var =
z=3Dthis;if(c||b.webkit)m.focus();var =
s=3Dm.getSelection(),t=3Ds.getSelectedElement(),u=3Dnew =
d.elementPath(t||s.getStartElement()),v=3D[0,0,0,0];
z.showAll();z.unmarkAll();for(var w in p){var =
x=3Dp[w],y=3Dx.type;if(x.checkActive(u))z.mark(w);else =
if(y=3D=3D3&&!x.checkApplicable(u)){z.hideItem(w);v[y]--;}v[y]++;}if(!v[1=
])z.hideGroup(o['panelTitle'+String(1)]);if(!v[2])z.hideGroup(o['panelTit=
le'+String(2)]);if(!v[3])z.hideGroup(o['panelTitle'+String(3)]);}});m.on(=
'instanceReady',function(){r();});}});function l(m,n){var =
o=3Dm.type,p=3Dn.type;return =
o=3D=3Dp?0:o=3D=3D3?-1:p=3D=3D3?1:p=3D=3D1?1:-1;};})();j.add('table',{ini=
t:function(l){var m=3Dj.table,n=3Dl.lang.table;l.addCommand('table',new =
a.dialogCommand('table'));l.addCommand('tableProperties',new =
a.dialogCommand('tableProperties'));l.ui.addButton('Table',{label:n.toolb=
ar,command:'table'});a.dialog.add('table',this.path+'dialogs/table.js');a=
.dialog.add('tableProperties',this.path+'dialogs/table.js');if(l.addMenuI=
tems)l.addMenuItems({table:{label:n.menu,command:'tableProperties',group:=
'table',order:5},tabledelete:{label:n.deleteTable,command:'tableDelete',g=
roup:'table',order:1}});l.on('doubleclick',function(o){var =
p=3Do.data.element;if(p.is('table'))o.data.dialog=3D'tableProperties';});=
if(l.contextMenu)l.contextMenu.addListener(function(o,p){if(!o||o.isReadO=
nly())return null;var =
q=3Do.is('table')||o.hasAscendant('table');if(q)return{tabledelete:2,tabl=
e:2};return null;});}});(function(){function =
l(F,G){if(c)F.removeAttribute(G);else delete F[G];};var =
m=3D/^(?:td|th)$/;function n(F){var =
G=3DF.createBookmarks(),H=3DF.getRanges(),I=3D[],J=3D{};function =
K(S){if(I.length>0)return;if(S.type=3D=3D1&&m.test(S.getName())&&!S.getCu=
stomData('selected_cell')){h.setMarker(J,S,'selected_cell',true);I.push(S=
);}};for(var L=3D0;L<H.length;L++){var M=3DH[L];if(M.collapsed){var =
N=3DM.getCommonAncestor(),O=3DN.getAscendant('td',true)||N.getAscendant('=
th',true);if(O)I.push(O);}else{var P=3Dnew =
d.walker(M),Q;P.guard=3DK;while(Q=3DP.next()){var =
R=3DQ.getParent();if(R&&m.test(R.getName())&&!R.getCustomData('selected_c=
ell')){h.setMarker(J,R,'selected_cell',true);I.push(R);}}}}h.clearAllMark=
ers(J);F.selectBookmarks(G);return I;};function o(F){var =
G=3D0,H=3DF.length-1,I=3D{},J,K,L;while(J=3DF[G++])h.setMarker(I,J,'delet=
e_cell',true);G=3D0;while(J=3DF[G++]){if((K=3DJ.getPrevious())&&!K.getCus=
tomData('delete_cell')||(K=3DJ.getNext())&&!K.getCustomData('delete_cell'=
)){h.clearAllMarkers(I);return =
K;}}h.clearAllMarkers(I);L=3DF[0].getParent();if(L=3DL.getPrevious())retu=
rn L.getLast();L=3DF[H].getParent();if(L=3DL.getNext())return =
L.getChild(0);return null;};function p(F){var G=3DF.cells;for(var =
H=3D0;H<G.length;H++){G[H].innerHTML=3D'';if(!c)new =
h(G[H]).appendBogus();}};function q(F,G){var =
H=3DF.getStartElement().getAscendant('tr');
if(!H)return;var =
I=3DH.clone(true);G?I.insertBefore(H):I.insertAfter(H);p(I.$);};function =
r(F){if(F instanceof d.selection){var =
G=3Dn(F),H=3DG.length,I=3D[],J,K,L;for(var M=3D0;M<H;M++){var =
N=3DG[M].getParent(),O=3DN.$.rowIndex;!M&&(K=3DO-1);I[O]=3DN;M=3D=3DH-1&&=
(L=3DO+1);}var =
P=3DN.getAscendant('table'),Q=3DP.$.rows,R=3DQ.length;J=3Dnew =
h(L<R&&P.$.rows[L]||K>0&&P.$.rows[K]||P.$.parentNode);for(M=3DI.length;M>=
=3D0;M--){if(I[M])r(I[M]);}return J;}else if(F instanceof =
h){P=3DF.getAscendant('table');if(P.$.rows.length=3D=3D1)P.remove();else =
F.remove();}return 0;};function s(F,G){var =
H=3DF.getStartElement(),I=3DH.getAscendant('td',true)||H.getAscendant('th=
',true);if(!I)return;var =
J=3DI.getAscendant('table'),K=3DI.$.cellIndex;for(var =
L=3D0;L<J.$.rows.length;L++){var =
M=3DJ.$.rows[L];if(M.cells.length<K+1)continue;I=3Dnew =
h(M.cells[K]).clone(false);if(!c)I.appendBogus();var N=3Dnew =
h(M.cells[K]);if(G)I.insertBefore(N);else I.insertAfter(N);}};function =
t(F){var =
G=3D[],H=3DF[0]&&F[0].getAscendant('table'),I,J,K,L;for(I=3D0,J=3DF.lengt=
h;I<J;I++)G.push(F[I].$.cellIndex);G.sort();for(I=3D1,J=3DG.length;I<J;I+=
+){if(G[I]-G[I-1]>1){K=3DG[I-1]+1;break;}}if(!K)K=3DG[0]>0?G[0]-1:G[G.len=
gth-1]+1;var =
M=3DH.$.rows;for(I=3D0,J=3DM.length;I<J;I++){L=3DM[I].cells[K];if(L)break=
;}return L?new h(L):H.getPrevious();};function u(F){if(F instanceof =
d.selection){var G=3Dn(F),H=3Dt(G);for(var =
I=3DG.length-1;I>=3D0;I--){if(G[I])u(G[I]);}return H;}else if(F =
instanceof h){var J=3DF.getAscendant('table');if(!J)return null;var =
K=3DF.$.cellIndex;for(I=3DJ.$.rows.length-1;I>=3D0;I--){var L=3Dnew =
h(J.$.rows[I]);if(!K&&L.$.cells.length=3D=3D1){r(L);continue;}if(L.$.cell=
s[K])L.$.removeChild(L.$.cells[K]);}}return null;};function v(F,G){var =
H=3DF.getStartElement(),I=3DH.getAscendant('td',true)||H.getAscendant('th=
',true);if(!I)return;var =
J=3DI.clone();if(!c)J.appendBogus();if(G)J.insertBefore(I);else =
J.insertAfter(I);};function w(F){if(F instanceof d.selection){var =
G=3Dn(F),H=3DG[0]&&G[0].getAscendant('table'),I=3Do(G);for(var =
J=3DG.length-1;J>=3D0;J--)w(G[J]);if(I)y(I,true);else =
if(H)H.remove();}else if(F instanceof h){var =
K=3DF.getParent();if(K.getChildCount()=3D=3D1)K.remove();else =
F.remove();}};function x(F){var =
G=3DF.getBogus();G&&G.remove();F.trim();};function y(F,G){var H=3Dnew =
d.range(F.getDocument());if(!H['moveToElementEdit'+(G?'End':'Start')](F))=
{H.selectNodeContents(F);H.collapse(G?false:true);}H.select(true);};funct=
ion z(F,G,H){var I=3DF[G];if(typeof H=3D=3D'undefined')return I;for(var =
J=3D0;I&&J<I.length;J++){if(H.is&&I[J]=3D=3DH.$)return J;else =
if(J=3D=3DH)return new h(I[J]);}return H.is?-1:null;};function =
A(F,G,H){var I=3D[];for(var J=3D0;
J<F.length;J++){var K=3DF[J];if(typeof =
H=3D=3D'undefined')I.push(K[G]);else if(H.is&&K[G]=3D=3DH.$)return =
J;else if(J=3D=3DH)return new h(K[G]);}return typeof =
H=3D=3D'undefined'?I:H.is?-1:null;};function B(F,G,H){var =
I=3Dn(F),J;if((G?I.length!=3D1:I.length<2)||(J=3DF.getCommonAncestor())&&=
J.type=3D=3D1&&J.is('table'))return false;var =
K,L=3DI[0],M=3DL.getAscendant('table'),N=3De.buildTableMap(M),O=3DN.lengt=
h,P=3DN[0].length,Q=3DL.getParent().$.rowIndex,R=3Dz(N,Q,L);if(G){var =
S;try{S=3DN[G=3D=3D'up'?Q-1:G=3D=3D'down'?Q+1:Q][G=3D=3D'left'?R-1:G=3D=3D=
'right'?R+1:R];}catch(ak){return false;}if(!S||L.$=3D=3DS)return =
false;I[G=3D=3D'up'||G=3D=3D'left'?'unshift':'push'](new h(S));}var =
T=3DL.getDocument(),U=3DQ,V=3D0,W=3D0,X=3D!H&&new =
d.documentFragment(T),Y=3D0;for(var Z=3D0;Z<I.length;Z++){K=3DI[Z];var =
aa=3DK.getParent(),ab=3DK.getFirst(),ac=3DK.$.colSpan,ad=3DK.$.rowSpan,ae=
=3Daa.$.rowIndex,af=3Dz(N,ae,K);Y+=3Dac*ad;W=3DMath.max(W,af-R+ac);V=3DMa=
th.max(V,ae-Q+ad);if(!H){if(x(K),K.getChildren().count()){if(ae!=3DU&&ab&=
&!(ab.isBlockBoundary&&ab.isBlockBoundary({br:1}))){var =
ag=3DX.getLast(d.walker.whitespaces(true));if(ag&&!(ag.is&&ag.is('br')))X=
.append(new =
h('br'));}K.moveChildren(X);}Z?K.remove():K.setHtml('');}U=3Dae;}if(!H){X=
.moveChildren(L);if(!c)L.appendBogus();if(W>=3DP)L.removeAttribute('rowSp=
an');else L.$.rowSpan=3DV;if(V>=3DO)L.removeAttribute('colSpan');else =
L.$.colSpan=3DW;var ah=3Dnew =
d.nodeList(M.$.rows),ai=3Dah.count();for(Z=3Dai-1;Z>=3D0;Z--){var =
aj=3Dah.getItem(Z);if(!aj.$.cells.length){aj.remove();ai++;continue;}}ret=
urn L;}else return V*W=3D=3DY;};function C(F,G){var =
H=3Dn(F);if(H.length>1)return false;else if(G)return true;var =
I=3DH[0],J=3DI.getParent(),K=3DJ.getAscendant('table'),L=3De.buildTableMa=
p(K),M=3DJ.$.rowIndex,N=3Dz(L,M,I),O=3DI.$.rowSpan,P,Q,R,S;if(O>1){Q=3DMa=
th.ceil(O/2);R=3DMath.floor(O/2);S=3DM+Q;var T=3Dnew =
h(K.$.rows[S]),U=3Dz(L,S),V;P=3DI.clone();for(var =
W=3D0;W<U.length;W++){V=3DU[W];if(V.parentNode=3D=3DT.$&&W>N){P.insertBef=
ore(new h(V));break;}else =
V=3Dnull;}if(!V)T.append(P,true);}else{R=3DQ=3D1;T=3DJ.clone();T.insertAf=
ter(J);T.append(P=3DI.clone());var X=3Dz(L,M);for(var =
Y=3D0;Y<X.length;Y++)X[Y].rowSpan++;}if(!c)P.appendBogus();I.$.rowSpan=3D=
Q;P.$.rowSpan=3DR;if(Q=3D=3D1)I.removeAttribute('rowSpan');if(R=3D=3D1)P.=
removeAttribute('rowSpan');return P;};function D(F,G){var =
H=3Dn(F);if(H.length>1)return false;else if(G)return true;var =
I=3DH[0],J=3DI.getParent(),K=3DJ.getAscendant('table'),L=3De.buildTableMa=
p(K),M=3DJ.$.rowIndex,N=3Dz(L,M,I),O=3DI.$.colSpan,P,Q,R;if(O>1){Q=3DMath=
.ceil(O/2);R=3DMath.floor(O/2);}else{R=3DQ=3D1;var S=3DA(L,N);for(var =
T=3D0;T<S.length;T++)S[T].colSpan++;}P=3DI.clone();P.insertAfter(I);if(!c=
)P.appendBogus();I.$.colSpan=3DQ;P.$.colSpan=3DR;
if(Q=3D=3D1)I.removeAttribute('colSpan');if(R=3D=3D1)P.removeAttribute('c=
olSpan');return P;};var =
E=3D{thead:1,tbody:1,tfoot:1,td:1,tr:1,th:1};j.tabletools=3D{init:functio=
n(F){var G=3DF.lang.table;F.addCommand('cellProperties',new =
a.dialogCommand('cellProperties'));a.dialog.add('cellProperties',this.pat=
h+'dialogs/tableCell.js');F.addCommand('tableDelete',{exec:function(H){va=
r =
I=3DH.getSelection(),J=3DI&&I.getStartElement(),K=3DJ&&J.getAscendant('ta=
ble',true);if(!K)return;I.selectElement(K);var =
L=3DI.getRanges()[0];L.collapse();I.selectRanges([L]);var =
M=3DK.getParent();if(M.getChildCount()=3D=3D1&&M.getName()!=3D'body')M.re=
move();else =
K.remove();}});F.addCommand('rowDelete',{exec:function(H){var =
I=3DH.getSelection();y(r(I));}});F.addCommand('rowInsertBefore',{exec:fun=
ction(H){var =
I=3DH.getSelection();q(I,true);}});F.addCommand('rowInsertAfter',{exec:fu=
nction(H){var =
I=3DH.getSelection();q(I);}});F.addCommand('columnDelete',{exec:function(=
H){var =
I=3DH.getSelection(),J=3Du(I);J&&y(J,true);}});F.addCommand('columnInsert=
Before',{exec:function(H){var =
I=3DH.getSelection();s(I,true);}});F.addCommand('columnInsertAfter',{exec=
:function(H){var =
I=3DH.getSelection();s(I);}});F.addCommand('cellDelete',{exec:function(H)=
{var =
I=3DH.getSelection();w(I);}});F.addCommand('cellMerge',{exec:function(H){=
y(B(H.getSelection()),true);}});F.addCommand('cellMergeRight',{exec:funct=
ion(H){y(B(H.getSelection(),'right'),true);}});F.addCommand('cellMergeDow=
n',{exec:function(H){y(B(H.getSelection(),'down'),true);}});F.addCommand(=
'cellVerticalSplit',{exec:function(H){y(C(H.getSelection()));}});F.addCom=
mand('cellHorizontalSplit',{exec:function(H){y(D(H.getSelection()));}});F=
.addCommand('cellInsertBefore',{exec:function(H){var =
I=3DH.getSelection();v(I,true);}});F.addCommand('cellInsertAfter',{exec:f=
unction(H){var =
I=3DH.getSelection();v(I);}});if(F.addMenuItems)F.addMenuItems({tablecell=
:{label:G.cell.menu,group:'tablecell',order:1,getItems:function(){var =
H=3DF.getSelection(),I=3Dn(H);return{tablecell_insertBefore:2,tablecell_i=
nsertAfter:2,tablecell_delete:2,tablecell_merge:B(H,null,true)?2:0,tablec=
ell_merge_right:B(H,'right',true)?2:0,tablecell_merge_down:B(H,'down',tru=
e)?2:0,tablecell_split_vertical:C(H,true)?2:0,tablecell_split_horizontal:=
D(H,true)?2:0,tablecell_properties:I.length>0?2:0};}},tablecell_insertBef=
ore:{label:G.cell.insertBefore,group:'tablecell',command:'cellInsertBefor=
e',order:5},tablecell_insertAfter:{label:G.cell.insertAfter,group:'tablec=
ell',command:'cellInsertAfter',order:10},tablecell_delete:{label:G.cell.d=
eleteCell,group:'tablecell',command:'cellDelete',order:15},tablecell_merg=
e:{label:G.cell.merge,group:'tablecell',command:'cellMerge',order:16},tab=
lecell_merge_right:{label:G.cell.mergeRight,group:'tablecell',command:'ce=
llMergeRight',order:17},tablecell_merge_down:{label:G.cell.mergeDown,grou=
p:'tablecell',command:'cellMergeDown',order:18},tablecell_split_horizonta=
l:{label:G.cell.splitHorizontal,group:'tablecell',command:'cellHorizontal=
Split',order:19},tablecell_split_vertical:{label:G.cell.splitVertical,gro=
up:'tablecell',command:'cellVerticalSplit',order:20},tablecell_properties=
:{label:G.cell.title,group:'tablecellproperties',command:'cellProperties'=
,order:21},tablerow:{label:G.row.menu,group:'tablerow',order:1,getItems:f=
unction(){return{tablerow_insertBefore:2,tablerow_insertAfter:2,tablerow_=
delete:2};
}},tablerow_insertBefore:{label:G.row.insertBefore,group:'tablerow',comma=
nd:'rowInsertBefore',order:5},tablerow_insertAfter:{label:G.row.insertAft=
er,group:'tablerow',command:'rowInsertAfter',order:10},tablerow_delete:{l=
abel:G.row.deleteRow,group:'tablerow',command:'rowDelete',order:15},table=
column:{label:G.column.menu,group:'tablecolumn',order:1,getItems:function=
(){return{tablecolumn_insertBefore:2,tablecolumn_insertAfter:2,tablecolum=
n_delete:2};}},tablecolumn_insertBefore:{label:G.column.insertBefore,grou=
p:'tablecolumn',command:'columnInsertBefore',order:5},tablecolumn_insertA=
fter:{label:G.column.insertAfter,group:'tablecolumn',command:'columnInser=
tAfter',order:10},tablecolumn_delete:{label:G.column.deleteColumn,group:'=
tablecolumn',command:'columnDelete',order:15}});if(F.contextMenu)F.contex=
tMenu.addListener(function(H,I){if(!H||H.isReadOnly())return =
null;while(H){if(H.getName() in =
E)return{tablecell:2,tablerow:2,tablecolumn:2};H=3DH.getParent();}return =
null;});},getSelectedCells:n};j.add('tabletools',j.tabletools);})();e.bui=
ldTableMap=3Dfunction(l){var m=3Dl.$.rows,n=3D-1,o=3D[];for(var =
p=3D0;p<m.length;p++){n++;!o[n]&&(o[n]=3D[]);var q=3D-1;for(var =
r=3D0;r<m[p].cells.length;r++){var =
s=3Dm[p].cells[r];q++;while(o[n][q])q++;var =
t=3DisNaN(s.colSpan)?1:s.colSpan,u=3DisNaN(s.rowSpan)?1:s.rowSpan;for(var=
 v=3D0;v<u;v++){if(!o[n+v])o[n+v]=3D[];for(var =
w=3D0;w<t;w++)o[n+v][q+w]=3Dm[p].cells[r];}q+=3Dt-1;}}return =
o;};j.add('specialchar',{init:function(l){var =
m=3D'specialchar';a.dialog.add(m,this.path+'dialogs/specialchar.js');l.ad=
dCommand(m,new =
a.dialogCommand(m));l.ui.addButton('SpecialChar',{label:l.lang.specialCha=
r.toolbar,command:m});}});(function(){var =
l=3D{editorFocus:false,modes:{wysiwyg:1,source:1}},m=3D{exec:function(p){=
p.container.focusNext(true,p.tabIndex);}},n=3D{exec:function(p){p.contain=
er.focusPrevious(true,p.tabIndex);}};function =
o(p){return{editorFocus:false,canUndo:false,modes:{wysiwyg:1},exec:functi=
on(q){if(q.focusManager.hasFocus){var =
r=3Dq.getSelection(),s=3Dr.getCommonAncestor(),t;if(t=3Ds.getAscendant('t=
d',true)||s.getAscendant('th',true)){var u=3Dnew =
d.range(q.document),v=3De.tryThese(function(){var =
C=3Dt.getParent(),D=3DC.$.cells[t.$.cellIndex+(p?-1:1)];D.parentNode.pare=
ntNode;return D;},function(){var =
C=3Dt.getParent(),D=3DC.getAscendant('table'),E=3DD.$.rows[C.$.rowIndex+(=
p?-1:1)];return E.cells[p?E.cells.length-1:0];});if(!(v||p)){var =
w=3Dt.getAscendant('table').$,x=3Dt.getParent().$.cells,y=3Dnew =
h(w.insertRow(-1),q.document);for(var z=3D0,A=3Dx.length;z<A;z++){var =
B=3Dy.append(new h(x[z],q.document).clone(false,false));
!c&&B.appendBogus();}u.moveToElementEditStart(y);}else if(v){v=3Dnew =
h(v);u.moveToElementEditStart(v);if(!(u.checkStartOfBlock()&&u.checkEndOf=
Block()))u.selectNodeContents(v);}else return true;u.select(true);return =
true;}}return =
false;}};};j.add('tab',{requires:['keystrokes'],init:function(p){var =
q=3Dp.config.enableTabKeyTools!=3D=3Dfalse,r=3Dp.config.tabSpaces||0,s=3D=
'';while(r--)s+=3D'\xa0';if(s)p.on('key',function(t){if(t.data.keyCode=3D=
=3D9){p.insertHtml(s);t.cancel();}});if(q)p.on('key',function(t){if(t.dat=
a.keyCode=3D=3D9&&p.execCommand('selectNextCell')||t.data.keyCode=3D=3D20=
00+9&&p.execCommand('selectPreviousCell'))t.cancel();});if(b.webkit||b.ge=
cko)p.on('key',function(t){var =
u=3Dt.data.keyCode;if(u=3D=3D9&&!s){t.cancel();p.execCommand('blur');}if(=
u=3D=3D2000+9){p.execCommand('blurBack');t.cancel();}});p.addCommand('blu=
r',e.extend(m,l));p.addCommand('blurBack',e.extend(n,l));p.addCommand('se=
lectNextCell',o());p.addCommand('selectPreviousCell',o(true));}});})();h.=
prototype.focusNext=3Dfunction(l,m){var v=3Dthis;var =
n=3Dv.$,o=3Dm=3D=3D=3Dundefined?v.getTabIndex():m,p,q,r,s,t,u;if(o<=3D0){=
t=3Dv.getNextSourceNode(l,1);while(t){if(t.isVisible()&&t.getTabIndex()=3D=
=3D=3D0){r=3Dt;break;}t=3Dt.getNextSourceNode(false,1);}}else{t=3Dv.getDo=
cument().getBody().getFirst();while(t=3Dt.getNextSourceNode(false,1)){if(=
!p)if(!q&&t.equals(v)){q=3Dtrue;if(l){if(!(t=3Dt.getNextSourceNode(true,1=
)))break;p=3D1;}}else =
if(q&&!v.contains(t))p=3D1;if(!t.isVisible()||(u=3Dt.getTabIndex())<0)con=
tinue;if(p&&u=3D=3Do){r=3Dt;break;}if(u>o&&(!r||!s||u<s)){r=3Dt;s=3Du;}el=
se =
if(!r&&u=3D=3D=3D0){r=3Dt;s=3Du;}}}if(r)r.focus();};h.prototype.focusPrev=
ious=3Dfunction(l,m){var v=3Dthis;var =
n=3Dv.$,o=3Dm=3D=3D=3Dundefined?v.getTabIndex():m,p,q,r,s=3D0,t,u=3Dv.get=
Document().getBody().getLast();while(u=3Du.getPreviousSourceNode(false,1)=
){if(!p)if(!q&&u.equals(v)){q=3Dtrue;if(l){if(!(u=3Du.getPreviousSourceNo=
de(true,1)))break;p=3D1;}}else =
if(q&&!v.contains(u))p=3D1;if(!u.isVisible()||(t=3Du.getTabIndex())<0)con=
tinue;if(o<=3D0){if(p&&t=3D=3D=3D0){r=3Du;break;}if(t>s){r=3Du;s=3Dt;}}el=
se{if(p&&t=3D=3Do){r=3Du;break;}if(t<o&&(!r||t>s)){r=3Du;s=3Dt;}}}if(r)r.=
focus();};(function(){j.add('templates',{requires:['dialog'],init:functio=
n(n){a.dialog.add('templates',a.getUrl(this.path+'dialogs/templates.js'))=
;n.addCommand('templates',new =
a.dialogCommand('templates'));n.ui.addButton('Templates',{label:n.lang.te=
mplates.button,command:'templates'});}});var =
l=3D{},m=3D{};a.addTemplates=3Dfunction(n,o){l[n]=3Do;};a.getTemplates=3D=
function(n){return l[n];};a.loadTemplates=3Dfunction(n,o){var =
p=3D[];for(var =
q=3D0;q<n.length;q++){if(!m[n[q]]){p.push(n[q]);m[n[q]]=3D1;}}if(p.length=
>0)a.scriptLoader.load(p,o);
else =
setTimeout(o,0);};})();i.templates=3D'default';i.templates_files=3D[a.get=
Url('plugins/templates/templates/default.js')];i.templates_replaceContent=
=3Dtrue;(function(){var =
l=3Dfunction(){this.toolbars=3D[];this.focusCommandExecuted=3Dfalse;};l.p=
rototype.focus=3Dfunction(){for(var =
n=3D0,o;o=3Dthis.toolbars[n++];)for(var =
p=3D0,q;q=3Do.items[p++];){if(q.focus){q.focus();return;}}};var =
m=3D{toolbarFocus:{modes:{wysiwyg:1,source:1},exec:function(n){if(n.toolb=
ox){n.toolbox.focusCommandExecuted=3Dtrue;if(c)setTimeout(function(){n.to=
olbox.focus();},100);else =
n.toolbox.focus();}}}};j.add('toolbar',{init:function(n){var =
o=3Dfunction(p,q){var r,s,t,u=3Dn.lang.dir=3D=3D'rtl';switch(q){case =
u?37:39:case =
9:do{r=3Dp.next;if(!r){s=3Dp.toolbar.next;t=3Ds&&s.items.length;while(t=3D=
=3D=3D0){s=3Ds.next;t=3Ds&&s.items.length;}if(s)r=3Ds.items[0];}p=3Dr;}wh=
ile(p&&!p.focus)if(p)p.focus();else n.toolbox.focus();return false;case =
u?39:37:case =
2000+9:do{r=3Dp.previous;if(!r){s=3Dp.toolbar.previous;t=3Ds&&s.items.len=
gth;while(t=3D=3D=3D0){s=3Ds.previous;t=3Ds&&s.items.length;}if(s)r=3Ds.i=
tems[t-1];}p=3Dr;}while(p&&!p.focus)if(p)p.focus();else{var =
v=3Dn.toolbox.toolbars[n.toolbox.toolbars.length-1].items;v[v.length-1].f=
ocus();}return false;case 27:n.focus();return false;case 13:case =
32:p.execute();return false;}return =
true;};n.on('themeSpace',function(p){if(p.data.space=3D=3Dn.config.toolba=
rLocation){n.toolbox=3Dnew l();var =
q=3D'cke_'+e.getNextNumber(),r=3D['<div class=3D"cke_toolbox" =
role=3D"toolbar" =
aria-labelledby=3D"',q,'"'],s=3Dn.config.toolbarStartupExpanded!=3D=3Dfal=
se,t;r.push(s?'>':' style=3D"display:none">');r.push('<span id=3D"',q,'" =
class=3D"cke_voice_label">',n.lang.toolbar,'</span>');var =
u=3Dn.toolbox.toolbars,v=3Dn.config.toolbar instanceof =
Array?n.config.toolbar:n.config['toolbar_'+n.config.toolbar];for(var =
w=3D0;w<v.length;w++){var x=3Dv[w];if(!x)continue;var =
y=3D'cke_'+e.getNextNumber(),z=3D{id:y,items:[]};if(t){r.push('</div>');t=
=3D0;}if(x=3D=3D=3D'/'){r.push('<div =
class=3D"cke_break"></div>');continue;}r.push('<span id=3D"',y,'" =
class=3D"cke_toolbar" role=3D"presentation"><span =
class=3D"cke_toolbar_start"></span>');var =
A=3Du.push(z)-1;if(A>0){z.previous=3Du[A-1];z.previous.next=3Dz;}for(var =
B=3D0;B<x.length;B++){var C,D=3Dx[B];if(D=3D=3D'-')C=3Dk.separator;else =
C=3Dn.ui.create(D);if(C){if(C.canGroup){if(!t){r.push('<span =
class=3D"cke_toolgroup" role=3D"presentation">');t=3D1;}}else =
if(t){r.push('</span>');t=3D0;}var =
E=3DC.render(n,r);A=3Dz.items.push(E)-1;if(A>0){E.previous=3Dz.items[A-1]=
;E.previous.next=3DE;}E.toolbar=3Dz;E.onkey=3Do;E.onfocus=3Dfunction(){if=
(!n.toolbox.focusCommandExecuted)n.focus();};}}if(t){r.push('</span>');t=3D=
0;
}r.push('<span =
class=3D"cke_toolbar_end"></span></span>');}r.push('</div>');if(n.config.=
toolbarCanCollapse){var =
F=3De.addFunction(function(){n.execCommand('toolbarCollapse');});n.on('de=
stroy',function(){e.removeFunction(F);});var =
G=3D'cke_'+e.getNextNumber();n.addCommand('toolbarCollapse',{exec:functio=
n(H){var =
I=3Da.document.getById(G),J=3DI.getPrevious(),K=3DH.getThemeSpace('conten=
ts'),L=3DJ.getParent(),M=3DparseInt(K.$.style.height,10),N=3DL.$.offsetHe=
ight,O=3D!J.isVisible();if(!O){J.hide();I.addClass('cke_toolbox_collapser=
_min');I.setAttribute('title',H.lang.toolbarExpand);}else{J.show();I.remo=
veClass('cke_toolbox_collapser_min');I.setAttribute('title',H.lang.toolba=
rCollapse);}I.getFirst().setText(O?'=E2=96=B2':'=E2=97=80');var =
P=3DL.$.offsetHeight-N;K.setStyle('height',M-P+'px');H.fire('resize');},m=
odes:{wysiwyg:1,source:1}});r.push('<a =
title=3D"'+(s?n.lang.toolbarCollapse:n.lang.toolbarExpand)+'" =
id=3D"'+G+'" tabIndex=3D"-1" =
class=3D"cke_toolbox_collapser');if(!s)r.push(' =
cke_toolbox_collapser_min');r.push('" =
onclick=3D"CKEDITOR.tools.callFunction('+F+')">','<span>&#9650;</span>','=
</a>');}p.data.html+=3Dr.join('');}});n.addCommand('toolbarFocus',m.toolb=
arFocus);}});})();k.separator=3D{render:function(l,m){m.push('<span =
class=3D"cke_separator" =
role=3D"separator"></span>');return{};}};i.toolbarLocation=3D'top';i.tool=
bar_Basic=3D[['Bold','Italic','-','NumberedList','BulletedList','-','Link=
','Unlink','-','About']];i.toolbar_Full=3D[['Source','-','Save','NewPage'=
,'Preview','-','Templates'],['Cut','Copy','Paste','PasteText','PasteFromW=
ord','-','Print','SpellChecker','Scayt'],['Undo','Redo','-','Find','Repla=
ce','-','SelectAll','RemoveFormat'],['Form','Checkbox','Radio','TextField=
','Textarea','Select','Button','ImageButton','HiddenField'],'/',['Bold','=
Italic','Underline','Strike','-','Subscript','Superscript'],['NumberedLis=
t','BulletedList','-','Outdent','Indent','Blockquote','CreateDiv'],['Just=
ifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],['BidiLtr','BidiR=
tl'],['Link','Unlink','Anchor'],['Image','Flash','Table','HorizontalRule'=
,'Smiley','SpecialChar','PageBreak'],'/',['Styles','Format','Font','FontS=
ize'],['TextColor','BGColor'],['Maximize','ShowBlocks','-','About']];i.to=
olbar=3D'Full';i.toolbarCanCollapse=3Dtrue;(function(){j.add('undo',{requ=
ires:['selection','wysiwygarea'],init:function(r){var s=3Dnew =
n(r),t=3Dr.addCommand('undo',{exec:function(){if(s.undo()){r.selectionCha=
nge();this.fire('afterUndo');}},state:0,canUndo:false}),u=3Dr.addCommand(=
'redo',{exec:function(){if(s.redo()){r.selectionChange();this.fire('after=
Redo');
}},state:0,canUndo:false});s.onChange=3Dfunction(){t.setState(s.undoable(=
)?2:0);u.setState(s.redoable()?2:0);};function =
v(w){if(s.enabled&&w.data.command.canUndo!=3D=3Dfalse)s.save();};r.on('be=
foreCommandExec',v);r.on('afterCommandExec',v);r.on('saveSnapshot',functi=
on(){s.save();});r.on('contentDom',function(){r.document.on('keydown',fun=
ction(w){if(!w.data.$.ctrlKey&&!w.data.$.metaKey)s.type(w);});});r.on('be=
foreModeUnload',function(){r.mode=3D=3D'wysiwyg'&&s.save(true);});r.on('m=
ode',function(){s.enabled=3Dr.mode=3D=3D'wysiwyg';s.onChange();});r.ui.ad=
dButton('Undo',{label:r.lang.undo,command:'undo'});r.ui.addButton('Redo',=
{label:r.lang.redo,command:'redo'});r.resetUndo=3Dfunction(){s.reset();r.=
fire('saveSnapshot');};r.on('updateSnapshot',function(){if(s.currentImage=
&&new =
l(r).equals(s.currentImage))setTimeout(function(){s.update();},0);});}});=
j.undo=3D{};var l=3Dj.undo.Image=3Dfunction(r){this.editor=3Dr;var =
s=3Dr.getSnapshot(),t=3Ds&&r.getSelection();c&&s&&(s=3Ds.replace(/\s+_cke=
_expando=3D".*?"/g,''));this.contents=3Ds;this.bookmarks=3Dt&&t.createBoo=
kmarks2(true);},m=3D/\b(?:href|src|name)=3D"[^"]*?"/gi;l.prototype=3D{equ=
als:function(r,s){var =
t=3Dthis.contents,u=3Dr.contents;if(c&&(b.ie7Compat||b.ie6Compat)){t=3Dt.=
replace(m,'');u=3Du.replace(m,'');}if(t!=3Du)return false;if(s)return =
true;var =
v=3Dthis.bookmarks,w=3Dr.bookmarks;if(v||w){if(!v||!w||v.length!=3Dw.leng=
th)return false;for(var x=3D0;x<v.length;x++){var =
y=3Dv[x],z=3Dw[x];if(y.startOffset!=3Dz.startOffset||y.endOffset!=3Dz.end=
Offset||!e.arrayCompare(y.start,z.start)||!e.arrayCompare(y.end,z.end))re=
turn false;}}return true;}};function =
n(r){this.editor=3Dr;this.reset();};var =
o=3D{8:1,46:1},p=3D{16:1,17:1,18:1},q=3D{37:1,38:1,39:1,40:1};n.prototype=
=3D{type:function(r){var s=3Dr&&r.data.getKey(),t=3Ds in p,u=3Ds in =
o,v=3Dthis.lastKeystroke in o,w=3Du&&s=3D=3Dthis.lastKeystroke,x=3Ds in =
q,y=3Dthis.lastKeystroke in =
q,z=3D!u&&!x,A=3Du&&!w,B=3D!(t||this.typing)||z&&(v||y);if(B||A){var =
C=3Dnew l(this.editor);e.setTimeout(function(){var E=3Dthis;var =
D=3DE.editor.getSnapshot();if(c)D=3DD.replace(/\s+_cke_expando=3D".*?"/g,=
'');if(C.contents!=3DD){E.typing=3Dtrue;if(!E.save(false,C,false))E.snaps=
hots.splice(E.index+1,E.snapshots.length-E.index-1);E.hasUndo=3Dtrue;E.ha=
sRedo=3Dfalse;E.typesCount=3D1;E.modifiersCount=3D1;E.onChange();}},0,thi=
s);}this.lastKeystroke=3Ds;if(u){this.typesCount=3D0;this.modifiersCount+=
+;if(this.modifiersCount>25){this.save(false,null,false);this.modifiersCo=
unt=3D1;}}else =
if(!x){this.modifiersCount=3D0;this.typesCount++;if(this.typesCount>25){t=
his.save(false,null,false);this.typesCount=3D1;}}},reset:function(){var =
r=3Dthis;
r.lastKeystroke=3D0;r.snapshots=3D[];r.index=3D-1;r.limit=3Dr.editor.conf=
ig.undoStackSize;r.currentImage=3Dnull;r.hasUndo=3Dfalse;r.hasRedo=3Dfals=
e;r.resetType();},resetType:function(){var =
r=3Dthis;r.typing=3Dfalse;delete =
r.lastKeystroke;r.typesCount=3D0;r.modifiersCount=3D0;},fireChange:functi=
on(){var =
r=3Dthis;r.hasUndo=3D!!r.getNextImage(true);r.hasRedo=3D!!r.getNextImage(=
false);r.resetType();r.onChange();},save:function(r,s,t){var =
v=3Dthis;var u=3Dv.snapshots;if(!s)s=3Dnew =
l(v.editor);if(s.contents=3D=3D=3Dfalse)return =
false;if(v.currentImage&&s.equals(v.currentImage,r))return =
false;u.splice(v.index+1,u.length-v.index-1);if(u.length=3D=3Dv.limit)u.s=
hift();v.index=3Du.push(s)-1;v.currentImage=3Ds;if(t!=3D=3Dfalse)v.fireCh=
ange();return true;},restoreImage:function(r){var =
t=3Dthis;t.editor.loadSnapshot(r.contents);if(r.bookmarks)t.editor.getSel=
ection().selectBookmarks(r.bookmarks);else if(c){var =
s=3Dt.editor.document.getBody().$.createTextRange();s.collapse(true);s.se=
lect();}t.index=3Dr.index;t.update();t.fireChange();},getNextImage:functi=
on(r){var w=3Dthis;var =
s=3Dw.snapshots,t=3Dw.currentImage,u,v;if(t)if(r)for(v=3Dw.index-1;v>=3D0=
;v--){u=3Ds[v];if(!t.equals(u,true)){u.index=3Dv;return u;}}else =
for(v=3Dw.index+1;v<s.length;v++){u=3Ds[v];if(!t.equals(u,true)){u.index=3D=
v;return u;}}return null;},redoable:function(){return =
this.enabled&&this.hasRedo;},undoable:function(){return =
this.enabled&&this.hasUndo;},undo:function(){var =
s=3Dthis;if(s.undoable()){s.save(true);var =
r=3Ds.getNextImage(true);if(r)return s.restoreImage(r),true;}return =
false;},redo:function(){var =
s=3Dthis;if(s.redoable()){s.save(true);if(s.redoable()){var =
r=3Ds.getNextImage(false);if(r)return s.restoreImage(r),true;}}return =
false;},update:function(){var =
r=3Dthis;r.snapshots.splice(r.index,1,r.currentImage=3Dnew =
l(r.editor));}};})();i.undoStackSize=3D20;(function(){var =
l=3D{table:1,pre:1},m=3D/\s*<(p|div|address|h\d|center)[^>]*>\s*(?:<br[^>=
]*>|&nbsp;|\u00A0|&#160;)?\s*(:?<\/\1>)?(?=3D\s*$|<\/body>)/gi,n=3Dd.walk=
er.whitespaces(true);function o(A){if(A.getType()=3D=3D3)return =
A.getSelectedElement().isReadOnly();else return =
A.getCommonAncestor().isReadOnly();};function =
p(A){if(this.mode=3D=3D'wysiwyg'){this.focus();var =
B=3Dthis.getSelection();if(o(B))return;var =
C=3DA.data;this.fire('saveSnapshot');if(this.dataProcessor)C=3Dthis.dataP=
rocessor.toHtml(C);if(c){var D=3DB.isLocked;if(D)B.unlock();var =
E=3DB.getNative();if(E.type=3D=3D'Control')E.clear();else =
if(B.getType()=3D=3D2){var =
F=3DB.getRanges()[0],G=3DF&&F.endContainer;if(G&&G.type=3D=3D1&&G.getAttr=
ibute('contenteditable')=3D=3D'false'&&F.checkBoundaryOfElement(G,2)){F.s=
etEndAfter(F.endContainer);
F.deleteContents();}}try{E.createRange().pasteHTML(C);}catch(I){}if(D)thi=
s.getSelection().lock();}else =
this.document.$.execCommand('inserthtml',false,C);if(b.webkit){this.docum=
ent.$.execCommand('inserthtml',false,'<span id=3D"cke_paste_marker" =
cke_temp=3D"1"></span>');var =
H=3Dthis.document.getById('cke_paste_marker');H.scrollIntoView();H.remove=
();}e.setTimeout(function(){this.fire('saveSnapshot');},0,this);}};functi=
on q(A){if(this.mode=3D=3D'wysiwyg'){this.focus();var =
B=3Dthis.getSelection();if(o(B))return;this.fire('saveSnapshot');var =
C=3DB.getRanges(),D=3DA.data,E=3DD.getName(),F=3Df.$block[E],G=3DB.isLock=
ed;if(G)B.unlock();var H,I,J,K;for(var =
L=3DC.length-1;L>=3D0;L--){H=3DC[L];H.deleteContents();I=3D!L&&D||D.clone=
(true);var =
M,N;if(F)while((M=3DH.getCommonAncestor(false,true))&&(N=3Df[M.getName()]=
)&&!(N&&N[E])){if(M.getName() in f.span)H.splitElement(M);else =
if(H.checkStartOfBlock()&&H.checkEndOfBlock()){H.setStartBefore(M);H.coll=
apse(true);M.remove();}else =
H.splitBlock();}H.insertNode(I);if(!J)J=3DI;}H.moveToPosition(J,4);if(F){=
var =
O=3DJ.getNext(n),P=3DO&&O.type=3D=3D1&&O.getName();if(P&&f.$block[P]&&f[P=
]['#'])H.moveToElementEditStart(O);}B.selectRanges([H]);if(G)this.getSele=
ction().lock();e.setTimeout(function(){this.fire('saveSnapshot');},0,this=
);}};function =
r(A){if(!A.checkDirty())setTimeout(function(){A.resetDirty();},0);};var =
s=3Dd.walker.whitespaces(true),t=3Dd.walker.bookmark(false,true);function=
 u(A){return s(A)&&t(A);};function v(A){return =
A.type=3D=3D3&&e.trim(A.getText()).match(/^(?:&nbsp;|\xa0)$/);};function =
w(A){if(A.isLocked){A.unlock();setTimeout(function(){A.lock();},0);}};fun=
ction x(A){return =
A.getOuterHtml().match(m);};s=3Dd.walker.whitespaces(true);function =
y(A){var =
B=3DA.window,C=3DA.document,D=3DA.document.getBody(),E=3DD.getChildren().=
count();if(!E||E=3D=3D1&&D.getFirst().hasAttribute('_moz_editor_bogus_nod=
e')){r(A);var =
F=3DA.element.getDocument(),G=3DF.getDocumentElement(),H=3DG.$.scrollTop,=
I=3DG.$.scrollLeft,J=3DC.$.createEvent('KeyEvents');J.initKeyEvent('keypr=
ess',true,true,B.$,false,false,false,false,0,32);C.$.dispatchEvent(J);if(=
H!=3DG.$.scrollTop||I!=3DG.$.scrollLeft)F.getWindow().$.scrollTo(I,H);E&&=
D.getFirst().remove();C.getBody().appendBogus();var K=3Dnew =
d.range(C);K.setStartAt(D,1);K.select();}};function z(A){var =
B=3DA.editor,C=3DA.data.path,D=3DC.blockLimit,E=3DA.data.selection,F=3DE.=
getRanges()[0],G=3DB.document.getBody(),H=3DB.config.enterMode;b.gecko&&y=
(B);if(H!=3D2&&F.collapsed&&D.getName()=3D=3D'body'&&!C.block){B.fire('up=
dateSnapshot');r(B);c&&w(E);var =
I=3DF.fixBlock(true,B.config.enterMode=3D=3D3?'div':'p');if(c){var =
J=3DI.getFirst(u);
J&&v(J)&&J.remove();}if(x(I)){var =
K=3DI.getNext(s);if(K&&K.type=3D=3D1&&!l[K.getName()]){F.moveToElementEdi=
tStart(K);I.remove();}else{K=3DI.getPrevious(s);if(K&&K.type=3D=3D1&&!l[K=
.getName()]){F.moveToElementEditEnd(K);I.remove();}}}F.select();if(!c)B.s=
electionChange();}var L=3Dnew d.range(B.document),M=3Dnew =
d.walker(L);L.selectNodeContents(G);M.evaluator=3Dfunction(O){return =
O.type=3D=3D1&&O.getName() in =
l;};M.guard=3Dfunction(O,P){return!(O.type=3D=3D3&&s(O)||P);};if(M.previo=
us()){B.fire('updateSnapshot');r(B);c&&w(E);var =
N;if(H!=3D2)N=3DG.append(new h(H=3D=3D1?'p':'div'));else =
N=3DG;if(!c)N.appendBogus();}};j.add('wysiwygarea',{requires:['editingblo=
ck'],init:function(A){var =
B=3DA.config.enterMode!=3D2?A.config.enterMode=3D=3D3?'div':'p':false,C=3D=
A.lang.editorTitle.replace('%1',A.name),D;A.on('editingBlockReady',functi=
on(){var =
J,K,L,M,N,O,P=3Db.isCustomDomain(),Q=3Dfunction(T){if(K)K.remove();var =
U=3D'document.open();'+(P?'document.domain=3D"'+document.domain+'";':'')+=
'document.close();';K=3Dh.createFromHtml('<iframe =
style=3D"width:100%;height:100%" frameBorder=3D"0" title=3D"'+C+'"'+' =
src=3D"'+(c?'javascript:void(function(){'+encodeURIComponent(U)+'}())':''=
)+'"'+' tabIndex=3D"'+(b.webkit?-1:A.tabIndex)+'"'+' =
allowTransparency=3D"true"'+'></iframe>');if(document.location.protocol=3D=
=3D'chrome:')a.event.useCapture=3Dtrue;K.on('load',function(Y){N=3D1;Y.re=
moveListener();var =
Z=3DK.getFrameDocument().$;Z.open('text/html','replace');Z.write(T);Z.clo=
se();});if(document.location.protocol=3D=3D'chrome:')a.event.useCapture=3D=
false;var =
V=3DA.element,W=3Db.gecko&&!V.isVisible(),X=3D{};if(W){V.show();X=3D{posi=
tion:V.getStyle('position'),top:V.getStyle('top')};V.setStyles({position:=
'absolute',top:'-3000px'});}J.append(K);if(W)setTimeout(function(){V.hide=
();V.setStyles(X);},1000);};D=3De.addFunction(S);var R=3D'<script =
id=3D"cke_actscrpt" type=3D"text/javascript" =
cke_temp=3D"1">'+(P?'document.domain=3D"'+document.domain+'";':'')+'windo=
w.parent.CKEDITOR.tools.callFunction( '+D+', window =
);'+'</script>';function =
S(T){if(!N)return;N=3D0;A.fire('ariaWidget',K);var =
U=3DT.document,V=3DU.body,W=3DU.getElementById('cke_actscrpt');W.parentNo=
de.removeChild(W);V.spellcheck=3D!A.config.disableNativeSpellChecker;if(c=
){V.hideFocus=3Dtrue;V.disabled=3Dtrue;V.contentEditable=3Dtrue;V.removeA=
ttribute('disabled');}else =
setTimeout(function(){if(b.gecko&&b.version>=3D10900||b.opera)U.$.body.co=
ntentEditable=3Dtrue;else =
if(b.webkit)U.$.body.parentNode.contentEditable=3Dtrue;else =
U.$.designMode=3D'on';},0);b.gecko&&e.setTimeout(y,0,null,A);T=3DA.window=
=3Dnew d.window(T);U=3DA.document=3Dnew =
g(U);U.on('dblclick',function(aa){var =
ab=3Daa.data.getTarget(),ac=3D{element:ab,dialog:''};
A.fire('doubleclick',ac);ac.dialog&&A.openDialog(ac.dialog);});if(!(c||b.=
opera))U.on('mousedown',function(aa){var =
ab=3Daa.data.getTarget();if(ab.is('img','hr','input','textarea','select')=
)A.getSelection().selectElement(ab);});if(b.gecko)U.on('mouseup',function=
(aa){if(aa.data.$.button=3D=3D2){var =
ab=3Daa.data.getTarget();if(!ab.getOuterHtml().replace(m,'')){var =
ac=3Dnew =
d.range(U);ac.moveToElementEditStart(ab);ac.select(true);}}});U.on('click=
',function(aa){aa=3Daa.data;if(aa.getTarget().is('a')&&aa.$.button!=3D2)a=
a.preventDefault();});if(b.webkit){U.on('click',function(aa){if(aa.data.g=
etTarget().is('input','select'))aa.data.preventDefault();});U.on('mouseup=
',function(aa){if(aa.data.getTarget().is('input','textarea'))aa.data.prev=
entDefault();});}if(c&&U.$.compatMode=3D=3D'CSS1Compat'||b.gecko||b.opera=
){var =
X=3DU.getDocumentElement();X.on('mousedown',function(aa){if(aa.data.getTa=
rget().equals(X)){if(b.gecko&&b.version>=3D10900)H();I.focus();}});}T.on(=
'blur',function(){A.focusManager.blur();});T.on('focus',function(){var =
aa=3DA.document;if(b.gecko&&b.version>=3D10900)H();else =
if(b.opera)aa.getBody().focus();A.focusManager.focus();});var =
Y=3DA.keystrokeHandler;if(Y)Y.attach(U);if(c){U.getDocumentElement().addC=
lass(U.$.compatMode);U.on('keydown',function(aa){var =
ab=3Daa.data.getKeystroke();if(ab in {8:1,46:1}){var =
ac=3DA.getSelection(),ad=3Dac.getSelectedElement();if(ad){A.fire('saveSna=
pshot');var =
ae=3Dac.getRanges()[0].createBookmark();ad.remove();ac.selectBookmarks([a=
e]);A.fire('saveSnapshot');aa.data.preventDefault();}}});if(U.$.compatMod=
e=3D=3D'CSS1Compat'){var =
Z=3D{33:1,34:1};U.on('keydown',function(aa){if(aa.data.getKeystroke() in =
Z)setTimeout(function(){A.getSelection().scrollIntoView();},0);});}}if(A.=
contextMenu)A.contextMenu.addTarget(U,A.config.browserContextMenuOnCtrl!=3D=
=3Dfalse);setTimeout(function(){A.fire('contentDom');if(O){A.mode=3D'wysi=
wyg';A.fire('mode');O=3Dfalse;}L=3Dfalse;if(M){A.focus();M=3Dfalse;}setTi=
meout(function(){A.fire('dataReady');},0);try{A.document.$.execCommand('e=
nableObjectResizing',false,!A.config.disableObjectResizing);}catch(aa){}t=
ry{A.document.$.execCommand('enableInlineTableEditing',false,!A.config.di=
sableNativeTableHandles);}catch(ab){}if(c)setTimeout(function(){if(A.docu=
ment){var =
ac=3DA.document.$.body;ac.runtimeStyle.marginBottom=3D'0px';ac.runtimeSty=
le.marginBottom=3D'';}},1000);},0);};A.addMode('wysiwyg',{load:function(T=
,U,V){J=3DT;if(c&&b.quirks)T.setStyle('position','relative');A.mayBeDirty=
=3Dtrue;O=3Dtrue;if(V)this.loadSnapshotData(U);else =
this.loadData(U);},loadData:function(T){L=3Dtrue;
var U=3DA.config,V=3DU.fullPage,W=3DU.docType,X=3D'<style =
type=3D"text/css" =
cke_temp=3D"1">'+A._.styles.join('\n')+'</style>';!V&&(X=3De.buildStyleHt=
ml(A.config.contentsCss)+X);var Y=3DU.baseHref?'<base =
href=3D"'+U.baseHref+'" cke_temp=3D"1" =
/>':'';if(V)T=3DT.replace(/<!DOCTYPE[^>]*>/i,function(Z){A.docType=3DW=3D=
Z;return =
'';});if(A.dataProcessor)T=3DA.dataProcessor.toHtml(T,B);if(V){if(!/<body=
[\s|>]/.test(T))T=3D'<body>'+T;if(!/<html[\s|>]/.test(T))T=3D'<html>'+T+'=
</html>';if(!/<head[\s|>]/.test(T))T=3DT.replace(/<html[^>]*>/,'$&<head><=
title></title></head>');else =
if(!/<title[\s|>]/.test(T))T=3DT.replace(/<head[^>]*>/,'$&<title></title>=
');Y&&(T=3DT.replace(/<head>/,'$&'+Y));T=3DT.replace(/<\/head\s*>/,X+'$&'=
);T=3DW+T;}else T=3DU.docType+'<html =
dir=3D"'+U.contentsLangDirection+'"'+' =
lang=3D"'+(U.contentsLanguage||A.langCode)+'">'+'<head>'+'<title>'+C+'</t=
itle>'+Y+X+'</head>'+'<body'+(U.bodyId?' =
id=3D"'+U.bodyId+'"':'')+(U.bodyClass?' =
class=3D"'+U.bodyClass+'"':'')+'>'+T+'</html>';T+=3DR;this.onDispose();Q(=
T);},getData:function(){var =
T=3DA.config,U=3DT.fullPage,V=3DU&&A.docType,W=3DK.getFrameDocument(),X=3D=
U?W.getDocumentElement().getOuterHtml():W.getBody().getHtml();if(A.dataPr=
ocessor)X=3DA.dataProcessor.toDataFormat(X,B);if(T.ignoreEmptyParagraph)X=
=3DX.replace(m,'');if(V)X=3DV+'\n'+X;return =
X;},getSnapshotData:function(){return =
K.getFrameDocument().getBody().getHtml();},loadSnapshotData:function(T){K=
.getFrameDocument().getBody().setHtml(T);},onDispose:function(){if(!A.doc=
ument)return;A.document.getDocumentElement().clearCustomData();A.document=
.getBody().clearCustomData();A.window.clearCustomData();A.document.clearC=
ustomData();K.clearCustomData();K.remove();},unload:function(T){this.onDi=
spose();A.window=3DA.document=3DK=3DJ=3DM=3Dnull;A.fire('contentDomUnload=
');},focus:function(){if(L)M=3Dtrue;else =
if(b.opera&&A.document){A.document.getBody().focus();A.selectionChange();=
}else =
if(!b.opera&&A.window){A.window.focus();A.selectionChange();}}});A.on('in=
sertHtml',p,null,null,20);A.on('insertElement',q,null,null,20);A.on('sele=
ctionChange',z,null,null,1);});var E;A.on('contentDom',function(){var =
J=3DA.document.getElementsByTag('title').getItem(0);J.setAttribute('_cke_=
title',A.document.$.title);A.document.$.title=3DC;});if(b.ie8Compat){A.ad=
dCss('html.CSS1Compat [contenteditable=3Dfalse]{ min-height:0 =
!important;}');var F=3D[];for(var G in =
f.$removeEmpty)F.push('html.CSS1Compat =
'+G+'[contenteditable=3Dfalse]');A.addCss(F.join(',')+'{ =
display:inline-block;}');}function =
H(J){e.tryThese(function(){A.document.$.designMode=3D'on';setTimeout(func=
tion(){A.document.$.designMode=3D'off';
A.document.getBody().focus();},50);},function(){A.document.$.designMode=3D=
'off';var =
K=3DA.document.getBody();K.setAttribute('contentEditable',false);K.setAtt=
ribute('contentEditable',true);!J&&H(1);});};if(b.gecko||c||b.opera){var =
I;A.on('uiReady',function(){I=3DA.container.append(h.createFromHtml('<spa=
n tabindex=3D"-1" style=3D"position:absolute; left:-10000" =
role=3D"presentation"></span>'));I.on('focus',function(){A.focus();});});=
A.on('destroy',function(){e.removeFunction(D);I.clearCustomData();});}A.o=
n('insertElement',function(J){var =
K=3DJ.data;if(K.type=3D=3D1&&(K.is('input')||K.is('textarea')))if(!K.isRe=
adOnly()){K.setAttribute('contentEditable',false);K.setCustomData('_cke_n=
otReadOnly',1);}});}});if(b.gecko)(function(){var =
A=3Ddocument.body;if(!A)window.addEventListener('load',arguments.callee,f=
alse);else{var =
B=3DA.getAttribute('onpageshow');A.setAttribute('onpageshow',(B?B+';':'')=
+'event.persisted && (function(){'+'var allInstances =3D =
CKEDITOR.instances, editor, doc;'+'for ( var i in allInstances =
)'+'{'+'\teditor =3D allInstances[ i ];'+'\tdoc =3D =
editor.document;'+'\tif ( doc )'+'\t{'+'\t\tdoc.$.designMode =3D =
"off";'+'\t\tdoc.$.designMode =3D =
"on";'+'\t}'+'}'+'})();');}})();})();i.disableObjectResizing=3Dfalse;i.di=
sableNativeTableHandles=3Dtrue;i.disableNativeSpellChecker=3Dtrue;i.ignor=
eEmptyParagraph=3Dtrue;j.add('wsc',{requires:['dialog'],init:function(l){=
var m=3D'checkspell',n=3Dl.addCommand(m,new =
a.dialogCommand(m));n.modes=3D{wysiwyg:!b.opera&&document.domain=3D=3Dwin=
dow.location.hostname};l.ui.addButton('SpellChecker',{label:l.lang.spellC=
heck.toolbar,command:m});a.dialog.add(m,this.path+'dialogs/wsc.js');}});i=
.wsc_customerId=3Di.wsc_customerId||'1:ua3xw1-2XyGJ3-GWruD3-6OFNT1-oXcuB1=
-nR6Bp4-hgQHc-EcYng3-sdRXG3-NOfFk';i.wsc_customLoaderScript=3Di.wsc_custo=
mLoaderScript||null;a.DIALOG_RESIZE_NONE=3D0;a.DIALOG_RESIZE_WIDTH=3D1;a.=
DIALOG_RESIZE_HEIGHT=3D2;a.DIALOG_RESIZE_BOTH=3D3;(function(){function =
l(N){return!!this._.tabs[N][0].$.offsetHeight;};function m(){var =
R=3Dthis;var =
N=3DR._.currentTabId,O=3DR._.tabIdList.length,P=3De.indexOf(R._.tabIdList=
,N)+O;for(var Q=3DP-1;Q>P-O;Q--){if(l.call(R,R._.tabIdList[Q%O]))return =
R._.tabIdList[Q%O];}return null;};function n(){var R=3Dthis;var =
N=3DR._.currentTabId,O=3DR._.tabIdList.length,P=3De.indexOf(R._.tabIdList=
,N);for(var Q=3DP+1;Q<P+O;Q++){if(l.call(R,R._.tabIdList[Q%O]))return =
R._.tabIdList[Q%O];}return null;};function o(N,O){var =
P=3DN.$.getElementsByTagName('input');for(var =
Q=3D0,R=3DP.length;Q<R;Q++){var S=3Dnew =
h(P[Q]);if(S.getAttribute('type').toLowerCase()=3D=3D'text')if(O){S.setAt=
tribute('value',S.getCustomData('fake_value')||'');
S.removeCustomData('fake_value');}else{S.setCustomData('fake_value',S.get=
Attribute('value'));S.setAttribute('value','');}}};a.dialog=3Dfunction(N,=
O){var =
P=3Da.dialog._.dialogDefinitions[O];P=3De.extend(P(N),q);P=3De.clone(P);P=
=3Dnew u(this,P);var =
Q=3Da.document,R=3DN.theme.buildDialog(N);this._=3D{editor:N,element:R.el=
ement,name:O,contentSize:{width:0,height:0},size:{width:0,height:0},updat=
eSize:false,contents:{},buttons:{},accessKeyMap:{},tabs:{},tabIdList:[],c=
urrentTabId:null,currentTabIndex:null,pageCount:0,lastTab:null,tabBarMode=
:false,focusList:[],currentFocusIndex:0,hasFocus:false};this.parts=3DR.pa=
rts;e.setTimeout(function(){N.fire('ariaWidget',this.parts.contents);},0,=
this);this.parts.dialog.setStyles({position:b.ie6Compat?'absolute':'fixed=
',top:0,left:0,visibility:'hidden'});a.event.call(this);this.definition=3D=
P=3Da.fire('dialogDefinition',{name:O,definition:P},N).definition;if(P.on=
Load)this.on('load',P.onLoad);if(P.onShow)this.on('show',P.onShow);if(P.o=
nHide)this.on('hide',P.onHide);if(P.onOk)this.on('ok',function(ae){N.fire=
('saveSnapshot');setTimeout(function(){N.fire('saveSnapshot');},0);if(P.o=
nOk.call(this,ae)=3D=3D=3Dfalse)ae.data.hide=3Dfalse;});if(P.onCancel)thi=
s.on('cancel',function(ae){if(P.onCancel.call(this,ae)=3D=3D=3Dfalse)ae.d=
ata.hide=3Dfalse;});var S=3Dthis,T=3Dfunction(ae){var =
af=3DS._.contents,ag=3Dfalse;for(var ah in af)for(var ai in =
af[ah]){ag=3Dae.call(this,af[ah][ai]);if(ag)return;}};this.on('ok',functi=
on(ae){T(function(af){if(af.validate){var =
ag=3Daf.validate(this);if(typeof =
ag=3D=3D'string'){alert(ag);ag=3Dfalse;}if(ag=3D=3D=3Dfalse){if(af.select=
)af.select();else af.focus();ae.data.hide=3Dfalse;ae.stop();return =
true;}}});},this,null,0);this.on('cancel',function(ae){T(function(af){if(=
af.isChanged()){if(!confirm(N.lang.common.confirmCancel))ae.data.hide=3Df=
alse;return =
true;}});},this,null,0);this.parts.close.on('click',function(ae){if(this.=
fire('cancel',{hide:true}).hide!=3D=3Dfalse)this.hide();ae.data.preventDe=
fault();},this);function U(){var =
ae=3DS._.focusList;ae.sort(function(ah,ai){if(ah.tabIndex!=3Dai.tabIndex)=
return ai.tabIndex-ah.tabIndex;else return =
ah.focusIndex-ai.focusIndex;});var af=3Dae.length;for(var =
ag=3D0;ag<af;ag++)ae[ag].focusIndex=3Dag;};function V(ae){var =
af=3DS._.focusList,ag=3Dae?1:-1;if(af.length<1)return;var =
ah=3DS._.currentFocusIndex;try{af[ah].getInputElement().$.blur();}catch(a=
k){}var =
ai=3D(ah+ag+af.length)%af.length,aj=3Dai;while(!af[aj].isFocusable()){aj=3D=
(aj+ag+af.length)%af.length;if(aj=3D=3Dai)break;}af[aj].focus();if(af[aj]=
.type=3D=3D'text')af[aj].select();};this.changeFocus=3DV;var W;function =
X(ae){var aj=3Dthis;
if(S!=3Da.dialog._.currentTop)return;var =
af=3Dae.data.getKeystroke(),ag=3DN.lang.dir=3D=3D'rtl';W=3D0;if(af=3D=3D9=
||af=3D=3D2000+9){var ah=3Daf=3D=3D2000+9;if(S._.tabBarMode){var =
ai=3Dah?m.call(S):n.call(S);S.selectPage(ai);S._.tabs[ai][0].focus();}els=
e V(!ah);W=3D1;}else =
if(af=3D=3D4000+121&&!S._.tabBarMode&&S.getPageCount()>1){S._.tabBarMode=3D=
true;S._.tabs[S._.currentTabId][0].focus();W=3D1;}else =
if((af=3D=3D37||af=3D=3D39)&&S._.tabBarMode){ai=3Daf=3D=3D(ag?39:37)?m.ca=
ll(S):n.call(S);S.selectPage(ai);S._.tabs[ai][0].focus();W=3D1;}else =
if((af=3D=3D13||af=3D=3D32)&&S._.tabBarMode){aj.selectPage(aj._.currentTa=
bId);aj._.tabBarMode=3Dfalse;aj._.currentFocusIndex=3D-1;V(true);W=3D1;}i=
f(W){ae.stop();ae.data.preventDefault();}};function =
Y(ae){W&&ae.data.preventDefault();};var =
Z=3Dthis._.element;this.on('show',function(){Z.on('keydown',X,this,null,0=
);if(b.opera||b.gecko&&b.mac)Z.on('keypress',Y,this);});this.on('hide',fu=
nction(){Z.removeListener('keydown',X);if(b.opera||b.gecko&&b.mac)Z.remov=
eListener('keypress',Y);});this.on('iframeAdded',function(ae){var =
af=3Dnew =
g(ae.data.iframe.$.contentWindow.document);af.on('keydown',X,this,null,0)=
;});this.on('show',function(){var =
ai=3Dthis;U();if(N.config.dialog_startupFocusTab&&S._.pageCount>1){S._.ta=
bBarMode=3Dtrue;S._.tabs[S._.currentTabId][0].focus();}else =
if(!ai._.hasFocus){ai._.currentFocusIndex=3D-1;if(P.onFocus){var =
ae=3DP.onFocus.call(ai);ae&&ae.focus();}else =
V(true);if(ai._.editor.mode=3D=3D'wysiwyg'&&c){var =
af=3DN.document.$.selection,ag=3Daf.createRange();if(ag)if(ag.parentEleme=
nt&&ag.parentElement().ownerDocument=3D=3DN.document.$||ag.item&&ag.item(=
0).ownerDocument=3D=3DN.document.$){var =
ah=3Ddocument.body.createTextRange();ah.moveToElementText(ai.getElement()=
.getFirst().$);ah.collapse(true);ah.select();}}}},this,null,4294967295);i=
f(b.ie6Compat)this.on('load',function(ae){var =
af=3Dthis.getElement(),ag=3Daf.getFirst();ag.remove();ag.appendTo(af);},t=
his);w(this);x(this);new =
d.text(P.title,a.document).appendTo(this.parts.title);for(var =
aa=3D0;aa<P.contents.length;aa++){var =
ab=3DP.contents[aa];ab&&this.addPage(ab);}this.parts.tabs.on('click',func=
tion(ae){var ah=3Dthis;var =
af=3Dae.data.getTarget();if(af.hasClass('cke_dialog_tab')){var =
ag=3Daf.$.id;ah.selectPage(ag.substring(4,ag.lastIndexOf('_')));if(ah._.t=
abBarMode){ah._.tabBarMode=3Dfalse;ah._.currentFocusIndex=3D-1;V(true);}a=
e.data.preventDefault();}},this);var =
ac=3D[],ad=3Da.dialog._.uiElementBuilders.hbox.build(this,{type:'hbox',cl=
assName:'cke_dialog_footer_buttons',widths:[],children:P.buttons},ac).get=
Child();this.parts.footer.setHtml(ac.join(''));for(aa=3D0;aa<ad.length;aa=
++)this._.buttons[ad[aa].id]=3Dad[aa];
};function =
p(N,O,P){this.element=3DO;this.focusIndex=3DP;this.tabIndex=3D0;this.isFo=
cusable=3Dfunction(){return!O.getAttribute('disabled')&&O.isVisible();};t=
his.focus=3Dfunction(){N._.currentFocusIndex=3Dthis.focusIndex;this.eleme=
nt.focus();};O.on('keydown',function(Q){if(Q.data.getKeystroke() in =
{32:1,13:1})this.fire('click');});O.on('focus',function(){this.fire('mous=
eover');});O.on('blur',function(){this.fire('mouseout');});};a.dialog.pro=
totype=3D{destroy:function(){this.hide();this._.element.remove();},resize=
:(function(){return function(N,O){var =
P=3Dthis;if(P._.contentSize&&P._.contentSize.width=3D=3DN&&P._.contentSiz=
e.height=3D=3DO)return;a.dialog.fire('resize',{dialog:P,skin:P._.editor.s=
kinName,width:N,height:O},P._.editor);P._.contentSize=3D{width:N,height:O=
};P._.updateSize=3Dtrue;};})(),getSize:function(){var =
P=3Dthis;if(!P._.updateSize)return P._.size;var =
N=3DP._.element.getFirst(),O=3DP._.size=3D{width:N.$.offsetWidth||0,heigh=
t:N.$.offsetHeight||0};P._.updateSize=3D!O.width||!O.height;return =
O;},move:(function(){var N;return function(O,P){var S=3Dthis;var =
Q=3DS._.element.getFirst();if(N=3D=3D=3Dundefined)N=3DQ.getComputedStyle(=
'position')=3D=3D'fixed';if(N&&S._.position&&S._.position.x=3D=3DO&&S._.p=
osition.y=3D=3DP)return;S._.position=3D{x:O,y:P};if(!N){var =
R=3Da.document.getWindow().getScrollPosition();O+=3DR.x;P+=3DR.y;}Q.setSt=
yles({left:(O>0?O:0)+'px',top:(P>0?P:0)+'px'});};})(),getPosition:functio=
n(){return e.extend({},this._.position);},show:function(){var =
N=3Dthis._.editor;if(N.mode=3D=3D'wysiwyg'&&c){var =
O=3DN.getSelection();O&&O.lock();}var =
P=3Dthis._.element,Q=3Dthis.definition;if(!(P.getParent()&&P.getParent().=
equals(a.document.getBody())))P.appendTo(a.document.getBody());else =
P.setStyle('display','block');if(b.gecko&&b.version<10900){var =
R=3Dthis.parts.dialog;R.setStyle('position','absolute');setTimeout(functi=
on(){R.setStyle('position','fixed');},0);}this.resize(Q.minWidth,Q.minHei=
ght);this.reset();this.selectPage(this.definition.contents[0].id);if(a.di=
alog._.currentZIndex=3D=3D=3Dnull)a.dialog._.currentZIndex=3Dthis._.edito=
r.config.baseFloatZIndex;this._.element.getFirst().setStyle('z-index',a.d=
ialog._.currentZIndex+=3D10);if(a.dialog._.currentTop=3D=3D=3Dnull){a.dia=
log._.currentTop=3Dthis;this._.parentDialog=3Dnull;B(this._.editor);P.on(=
'keydown',F);P.on(b.opera?'keypress':'keyup',G);for(var S in =
{keyup:1,keydown:1,keypress:1})P.on(S,M);}else{this._.parentDialog=3Da.di=
alog._.currentTop;var =
T=3Dthis._.parentDialog.getElement().getFirst();T.$.style.zIndex-=3DMath.=
floor(this._.editor.config.baseFloatZIndex/2);a.dialog._.currentTop=3Dthi=
s;}H(this,this,'\x1b',null,function(){this.getButton('cancel')&&this.getB=
utton('cancel').click();
});this._.hasFocus=3Dfalse;e.setTimeout(function(){var =
U=3Da.document.getWindow().getViewPaneSize(),V=3Dthis.getSize();this.move=
((U.width-Q.minWidth)/2,(U.height-V.height)/2);this.parts.dialog.setStyle=
('visibility','');this.fireOnce('load',{});this.fire('show',{});this._.ed=
itor.fire('dialogShow',this);this.foreach(function(W){W.setInitValue&&W.s=
etInitValue();});},100,this);},foreach:function(N){var Q=3Dthis;for(var =
O in Q._.contents)for(var P in =
Q._.contents[O])N(Q._.contents[O][P]);return Q;},reset:(function(){var =
N=3Dfunction(O){if(O.reset)O.reset(1);};return =
function(){this.foreach(N);return =
this;};})(),setupContent:function(){var =
N=3Darguments;this.foreach(function(O){if(O.setup)O.setup.apply(O,N);});}=
,commitContent:function(){var =
N=3Darguments;this.foreach(function(O){if(O.commit)O.commit.apply(O,N);})=
;},hide:function(){if(!this.parts.dialog.isVisible())return;this.fire('hi=
de',{});this._.editor.fire('dialogHide',this);var =
N=3Dthis._.element;N.setStyle('display','none');this.parts.dialog.setStyl=
e('visibility','hidden');I(this);while(a.dialog._.currentTop!=3Dthis)a.di=
alog._.currentTop.hide();if(!this._.parentDialog)C();else{var =
O=3Dthis._.parentDialog.getElement().getFirst();O.setStyle('z-index',pars=
eInt(O.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex=
/2));}a.dialog._.currentTop=3Dthis._.parentDialog;if(!this._.parentDialog=
){a.dialog._.currentZIndex=3Dnull;N.removeListener('keydown',F);N.removeL=
istener(b.opera?'keypress':'keyup',G);for(var P in =
{keyup:1,keydown:1,keypress:1})N.removeListener(P,M);var =
Q=3Dthis._.editor;Q.focus();if(Q.mode=3D=3D'wysiwyg'&&c){var =
R=3DQ.getSelection();R&&R.unlock(true);}}else =
a.dialog._.currentZIndex-=3D10;delete =
this._.parentDialog;this.foreach(function(S){S.resetInitValue&&S.resetIni=
tValue();});},addPage:function(N){var Z=3Dthis;var O=3D[],P=3DN.label?' =
title=3D"'+e.htmlEncode(N.label)+'"':'',Q=3DN.elements,R=3Da.dialog._.uiE=
lementBuilders.vbox.build(Z,{type:'vbox',className:'cke_dialog_page_conte=
nts',children:N.elements,expand:!!N.expand,padding:N.padding,style:N.styl=
e||'width: 100%; height: =
100%;'},O),S=3Dh.createFromHtml(O.join(''));S.setAttribute('role','tabpan=
el');var =
T=3Db,U=3D'cke_'+N.id+'_'+e.getNextNumber(),V=3Dh.createFromHtml(['<a =
class=3D"cke_dialog_tab"',Z._.pageCount>0?' =
cke_last':'cke_first',P,!!N.hidden?' style=3D"display:none"':'',' =
id=3D"',U,'"',T.gecko&&T.version>=3D10900&&!T.hc?'':' =
href=3D"javascript:void(0)"',' tabIndex=3D"-1"',' hidefocus=3D"true"',' =
role=3D"tab">',N.label,'</a>'].join(''));S.setAttribute('aria-labelledby'=
,U);Z._.tabs[N.id]=3D[V,S];Z._.tabIdList.push(N.id);
!N.hidden&&Z._.pageCount++;Z._.lastTab=3DV;Z.updateStyle();var =
W=3DZ._.contents[N.id]=3D{},X,Y=3DR.getChild();while(X=3DY.shift()){W[X.i=
d]=3DX;if(typeof =
X.getChild=3D=3D'function')Y.push.apply(Y,X.getChild());}S.setAttribute('=
name',N.id);S.appendTo(Z.parts.contents);V.unselectable();Z.parts.tabs.ap=
pend(V);if(N.accessKey){H(Z,Z,'CTRL+'+N.accessKey,K,J);Z._.accessKeyMap['=
CTRL+'+N.accessKey]=3DN.id;}},selectPage:function(N){if(this._.currentTab=
Id=3D=3DN)return;if(this.fire('selectPage',{page:N,currentPage:this._.cur=
rentTabId})=3D=3D=3Dtrue)return;for(var O in this._.tabs){var =
P=3Dthis._.tabs[O][0],Q=3Dthis._.tabs[O][1];if(O!=3DN){P.removeClass('cke=
_dialog_tab_selected');Q.hide();}Q.setAttribute('aria-hidden',O!=3DN);}va=
r =
R=3Dthis._.tabs[N];R[0].addClass('cke_dialog_tab_selected');if(b.ie6Compa=
t||b.ie7Compat){o(R[1]);R[1].show();setTimeout(function(){o(R[1],true);},=
0);}else =
R[1].show();this._.currentTabId=3DN;this._.currentTabIndex=3De.indexOf(th=
is._.tabIdList,N);},updateStyle:function(){this.parts.dialog[(this._.page=
Count=3D=3D=3D1?'add':'remove')+'Class']('cke_single_page');},hidePage:fu=
nction(N){var P=3Dthis;var =
O=3DP._.tabs[N]&&P._.tabs[N][0];if(!O||P._.pageCount=3D=3D1)return;else =
if(N=3D=3DP._.currentTabId)P.selectPage(m.call(P));O.hide();P._.pageCount=
--;P.updateStyle();},showPage:function(N){var P=3Dthis;var =
O=3DP._.tabs[N]&&P._.tabs[N][0];if(!O)return;O.show();P._.pageCount++;P.u=
pdateStyle();},getElement:function(){return =
this._.element;},getName:function(){return =
this._.name;},getContentElement:function(N,O){var =
P=3Dthis._.contents[N];return P&&P[O];},getValueOf:function(N,O){return =
this.getContentElement(N,O).getValue();},setValueOf:function(N,O,P){retur=
n this.getContentElement(N,O).setValue(P);},getButton:function(N){return =
this._.buttons[N];},click:function(N){return =
this._.buttons[N].click();},disableButton:function(N){return =
this._.buttons[N].disable();},enableButton:function(N){return =
this._.buttons[N].enable();},getPageCount:function(){return =
this._.pageCount;},getParentEditor:function(){return =
this._.editor;},getSelectedElement:function(){return =
this.getParentEditor().getSelection().getSelectedElement();},addFocusable=
:function(N,O){var Q=3Dthis;if(typeof =
O=3D=3D'undefined'){O=3DQ._.focusList.length;Q._.focusList.push(new =
p(Q,N,O));}else{Q._.focusList.splice(O,0,new p(Q,N,O));for(var =
P=3DO+1;P<Q._.focusList.length;P++)Q._.focusList[P].focusIndex++;}}};e.ex=
tend(a.dialog,{add:function(N,O){if(!this._.dialogDefinitions[N]||typeof =
O=3D=3D'function')this._.dialogDefinitions[N]=3DO;},exists:function(N){re=
turn!!this._.dialogDefinitions[N];
},getCurrent:function(){return =
a.dialog._.currentTop;},okButton:(function(){var =
N=3Dfunction(O,P){P=3DP||{};return =
e.extend({id:'ok',type:'button',label:O.lang.common.ok,'class':'cke_dialo=
g_ui_button_ok',onClick:function(Q){var =
R=3DQ.data.dialog;if(R.fire('ok',{hide:true}).hide!=3D=3Dfalse)R.hide();}=
},P,true);};N.type=3D'button';N.override=3Dfunction(O){return =
e.extend(function(P){return N(P,O);},{type:'button'},true);};return =
N;})(),cancelButton:(function(){var N=3Dfunction(O,P){P=3DP||{};return =
e.extend({id:'cancel',type:'button',label:O.lang.common.cancel,'class':'c=
ke_dialog_ui_button_cancel',onClick:function(Q){var =
R=3DQ.data.dialog;if(R.fire('cancel',{hide:true}).hide!=3D=3Dfalse)R.hide=
();}},P,true);};N.type=3D'button';N.override=3Dfunction(O){return =
e.extend(function(P){return N(P,O);},{type:'button'},true);};return =
N;})(),addUIElement:function(N,O){this._.uiElementBuilders[N]=3DO;}});a.d=
ialog._=3D{uiElementBuilders:{},dialogDefinitions:{},currentTop:null,curr=
entZIndex:null};a.event.implementOn(a.dialog);a.event.implementOn(a.dialo=
g.prototype,true);var =
q=3D{resizable:3,minWidth:600,minHeight:400,buttons:[a.dialog.okButton,a.=
dialog.cancelButton]};b.mac&&q.buttons.reverse();var =
r=3Dfunction(N,O,P){for(var Q=3D0,R;R=3DN[Q];Q++){if(R.id=3D=3DO)return =
R;if(P&&R[P]){var S=3Dr(R[P],O,P);if(S)return S;}}return =
null;},s=3Dfunction(N,O,P,Q,R){if(P){for(var =
S=3D0,T;T=3DN[S];S++){if(T.id=3D=3DP){N.splice(S,0,O);return =
O;}if(Q&&T[Q]){var U=3Ds(T[Q],O,P,Q,true);if(U)return U;}}if(R)return =
null;}N.push(O);return O;},t=3Dfunction(N,O,P){for(var =
Q=3D0,R;R=3DN[Q];Q++){if(R.id=3D=3DO)return =
N.splice(Q,1);if(P&&R[P]){var S=3Dt(R[P],O,P);if(S)return S;}}return =
null;},u=3Dfunction(N,O){this.dialog=3DN;var P=3DO.contents;for(var =
Q=3D0,R;R=3DP[Q];Q++)P[Q]=3DR&&new =
v(N,R);e.extend(this,O);};u.prototype=3D{getContents:function(N){return =
r(this.contents,N);},getButton:function(N){return =
r(this.buttons,N);},addContents:function(N,O){return =
s(this.contents,N,O);},addButton:function(N,O){return =
s(this.buttons,N,O);},removeContents:function(N){t(this.contents,N);},rem=
oveButton:function(N){t(this.buttons,N);}};function =
v(N,O){this._=3D{dialog:N};e.extend(this,O);};v.prototype=3D{get:function=
(N){return r(this.elements,N,'children');},add:function(N,O){return =
s(this.elements,N,O,'children');},remove:function(N){t(this.elements,N,'c=
hildren');}};function w(N){var =
O=3Dnull,P=3Dnull,Q=3DN.getElement().getFirst(),R=3DN.getParentEditor(),S=
=3DR.config.dialog_magnetDistance,T=3DR.skin.margins||[0,0,0,0];if(typeof=
 S=3D=3D'undefined')S=3D20;function U(W){var =
X=3DN.getSize(),Y=3Da.document.getWindow().getViewPaneSize(),Z=3DW.data.$=
.screenX,aa=3DW.data.$.screenY,ab=3DZ-O.x,ac=3Daa-O.y,ad,ae;
O=3D{x:Z,y:aa};P.x+=3Dab;P.y+=3Dac;if(P.x+T[3]<S)ad=3D-T[3];else =
if(P.x-T[1]>Y.width-X.width-S)ad=3DY.width-X.width+T[1];else =
ad=3DP.x;if(P.y+T[0]<S)ae=3D-T[0];else =
if(P.y-T[2]>Y.height-X.height-S)ae=3DY.height-X.height+T[2];else =
ae=3DP.y;N.move(ad,ae);W.data.preventDefault();};function =
V(W){a.document.removeListener('mousemove',U);a.document.removeListener('=
mouseup',V);if(b.ie6Compat){var =
X=3DA.getChild(0).getFrameDocument();X.removeListener('mousemove',U);X.re=
moveListener('mouseup',V);}};N.parts.title.on('mousedown',function(W){N._=
.updateSize=3Dtrue;O=3D{x:W.data.$.screenX,y:W.data.$.screenY};a.document=
.on('mousemove',U);a.document.on('mouseup',V);P=3DN.getPosition();if(b.ie=
6Compat){var =
X=3DA.getChild(0).getFrameDocument();X.on('mousemove',U);X.on('mouseup',V=
);}W.data.preventDefault();},N);};function x(N){var =
O=3DN.definition,P=3DO.minWidth||0,Q=3DO.minHeight||0,R=3DO.resizable,S=3D=
N.getParentEditor().skin.margins||[0,0,0,0];function =
T(ae,af){ae.y+=3Daf;};function U(ae,af){ae.x2+=3Daf;};function =
V(ae,af){ae.y2+=3Daf;};function W(ae,af){ae.x+=3Daf;};var =
X=3Dnull,Y=3Dnull,Z=3DN._.editor.config.magnetDistance,aa=3D['tl','t','tr=
','l','r','bl','b','br'];function ab(ae){var =
af=3Dae.listenerData.part,ag=3DN.getSize();Y=3DN.getPosition();e.extend(Y=
,{x2:Y.x+ag.width,y2:Y.y+ag.height});X=3D{x:ae.data.$.screenX,y:ae.data.$=
.screenY};a.document.on('mousemove',ac,N,{part:af});a.document.on('mouseu=
p',ad,N,{part:af});if(b.ie6Compat){var =
ah=3DA.getChild(0).getFrameDocument();ah.on('mousemove',ac,N,{part:af});a=
h.on('mouseup',ad,N,{part:af});}ae.data.preventDefault();};function =
ac(ae){var =
af=3Dae.data.$.screenX,ag=3Dae.data.$.screenY,ah=3Daf-X.x,ai=3Dag-X.y,aj=3D=
a.document.getWindow().getViewPaneSize(),ak=3Dae.listenerData.part;if(ak.=
search('t')!=3D-1)T(Y,ai);if(ak.search('l')!=3D-1)W(Y,ah);if(ak.search('b=
')!=3D-1)V(Y,ai);if(ak.search('r')!=3D-1)U(Y,ah);X=3D{x:af,y:ag};var =
al,am,an,ao;if(Y.x+S[3]<Z)al=3D-S[3];else =
if(ak.search('l')!=3D-1&&Y.x2-Y.x<P+Z)al=3DY.x2-P;else =
al=3DY.x;if(Y.y+S[0]<Z)am=3D-S[0];else =
if(ak.search('t')!=3D-1&&Y.y2-Y.y<Q+Z)am=3DY.y2-Q;else =
am=3DY.y;if(Y.x2-S[1]>aj.width-Z)an=3Daj.width+S[1];else =
if(ak.search('r')!=3D-1&&Y.x2-Y.x<P+Z)an=3DY.x+P;else =
an=3DY.x2;if(Y.y2-S[2]>aj.height-Z)ao=3Daj.height+S[2];else =
if(ak.search('b')!=3D-1&&Y.y2-Y.y<Q+Z)ao=3DY.y+Q;else =
ao=3DY.y2;N.move(al,am);N.resize(an-al,ao-am);ae.data.preventDefault();};=
function =
ad(ae){a.document.removeListener('mouseup',ad);a.document.removeListener(=
'mousemove',ac);if(b.ie6Compat){var =
af=3DA.getChild(0).getFrameDocument();af.removeListener('mouseup',ad);af.=
removeListener('mousemove',ac);}};};var y,z=3D{},A;function B(N){var =
O=3Da.document.getWindow(),P=3DN.config.dialog_backgroundCoverColor||'whi=
te',Q=3DN.config.dialog_backgroundCoverOpacity,R=3DN.config.baseFloatZInd=
ex,S=3De.genKey(P,Q,R),T=3Dz[S];
if(!T){var U=3D['<div style=3D"position: =
',b.ie6Compat?'absolute':'fixed','; z-index: ',R,'; top: 0px; left: 0px; =
',!b.ie6Compat?'background-color: '+P:'','" =
class=3D"cke_dialog_background_cover">'];if(b.ie6Compat){var =
V=3Db.isCustomDomain(),W=3D"<html><body =
style=3D\\'background-color:"+P+";\\'></body></html>";U.push('<iframe =
hidefocus=3D"true" frameborder=3D"0" id=3D"cke_dialog_background_iframe" =
src=3D"javascript:');U.push('void((function(){document.open();'+(V?"docum=
ent.domain=3D'"+document.domain+"';":'')+"document.write( '"+W+"' =
);"+'document.close();'+'})())');U.push('" =
style=3D"position:absolute;left:0;top:0;width:100%;height: =
100%;progid:DXImageTransform.Microsoft.Alpha(opacity=3D0)"></iframe>');}U=
.push('</div>');T=3Dh.createFromHtml(U.join(''));T.setOpacity(Q!=3Dundefi=
ned?Q:0.5);T.appendTo(a.document.getBody());z[S]=3DT;}else =
T.show();A=3DT;var X=3Dfunction(){var =
aa=3DO.getViewPaneSize();T.setStyles({width:aa.width+'px',height:aa.heigh=
t+'px'});},Y=3Dfunction(){var =
aa=3DO.getScrollPosition(),ab=3Da.dialog._.currentTop;T.setStyles({left:a=
a.x+'px',top:aa.y+'px'});do{var =
ac=3Dab.getPosition();ab.move(ac.x,ac.y);}while(ab=3Dab._.parentDialog)};=
y=3DX;O.on('resize',X);X();if(b.ie6Compat){var =
Z=3Dfunction(){Y();arguments.callee.prevScrollHandler.apply(this,argument=
s);};O.$.setTimeout(function(){Z.prevScrollHandler=3Dwindow.onscroll||(fu=
nction(){});window.onscroll=3DZ;},0);Y();}};function =
C(){if(!A)return;var =
N=3Da.document.getWindow();A.hide();N.removeListener('resize',y);if(b.ie6=
Compat)N.$.setTimeout(function(){var =
O=3Dwindow.onscroll&&window.onscroll.prevScrollHandler;window.onscroll=3D=
O||null;},0);y=3Dnull;};function D(){for(var N in =
z)z[N].remove();z=3D{};};var E=3D{},F=3Dfunction(N){var =
O=3DN.data.$.ctrlKey||N.data.$.metaKey,P=3DN.data.$.altKey,Q=3DN.data.$.s=
hiftKey,R=3DString.fromCharCode(N.data.$.keyCode),S=3DE[(O?'CTRL+':'')+(P=
?'ALT+':'')+(Q?'SHIFT+':'')+R];if(!S||!S.length)return;S=3DS[S.length-1];=
S.keydown&&S.keydown.call(S.uiElement,S.dialog,S.key);N.data.preventDefau=
lt();},G=3Dfunction(N){var =
O=3DN.data.$.ctrlKey||N.data.$.metaKey,P=3DN.data.$.altKey,Q=3DN.data.$.s=
hiftKey,R=3DString.fromCharCode(N.data.$.keyCode),S=3DE[(O?'CTRL+':'')+(P=
?'ALT+':'')+(Q?'SHIFT+':'')+R];if(!S||!S.length)return;S=3DS[S.length-1];=
if(S.keyup){S.keyup.call(S.uiElement,S.dialog,S.key);N.data.preventDefaul=
t();}},H=3Dfunction(N,O,P,Q,R){var =
S=3DE[P]||(E[P]=3D[]);S.push({uiElement:N,dialog:O,key:P,keyup:R||N.acces=
sKeyUp,keydown:Q||N.accessKeyDown});},I=3Dfunction(N){for(var O in =
E){var P=3DE[O];for(var =
Q=3DP.length-1;Q>=3D0;Q--){if(P[Q].dialog=3D=3DN||P[Q].uiElement=3D=3DN)P=
.splice(Q,1);
}if(P.length=3D=3D=3D0)delete =
E[O];}},J=3Dfunction(N,O){if(N._.accessKeyMap[O])N.selectPage(N._.accessK=
eyMap[O]);},K=3Dfunction(N,O){},L=3D{27:1,13:1},M=3Dfunction(N){if(N.data=
.getKeystroke() in =
L)N.data.stopPropagation();};(function(){k.dialog=3D{uiElement:function(N=
,O,P,Q,R,S,T){if(arguments.length<4)return;var =
U=3D(Q.call?Q(O):Q)||'div',V=3D['<',U,' =
'],W=3D(R&&R.call?R(O):R)||{},X=3D(S&&S.call?S(O):S)||{},Y=3D(T&&T.call?T=
.call(this,N,O):T)||'',Z=3Dthis.domId=3DX.id||e.getNextId()+'_uiElement',=
aa=3Dthis.id=3DO.id,ab;X.id=3DZ;var =
ac=3D{};if(O.type)ac['cke_dialog_ui_'+O.type]=3D1;if(O.className)ac[O.cla=
ssName]=3D1;var ad=3DX['class']&&X['class'].split?X['class'].split(' =
'):[];for(ab=3D0;ab<ad.length;ab++){if(ad[ab])ac[ad[ab]]=3D1;}var =
ae=3D[];for(ab in ac)ae.push(ab);X['class']=3Dae.join(' =
');if(O.title)X.title=3DO.title;var af=3D(O.style||'').split(';');for(ab =
in =
W)af.push(ab+':'+W[ab]);if(O.hidden)af.push('display:none');for(ab=3Daf.l=
ength-1;ab>=3D0;ab--){if(af[ab]=3D=3D=3D'')af.splice(ab,1);}if(af.length>=
0)X.style=3D(X.style?X.style+'; ':'')+af.join('; ');for(ab in =
X)V.push(ab+'=3D"'+e.htmlEncode(X[ab])+'" =
');V.push('>',Y,'</',U,'>');P.push(V.join(''));(this._||(this._=3D{})).di=
alog=3DN;if(typeof =
O.isChanged=3D=3D'boolean')this.isChanged=3Dfunction(){return =
O.isChanged;};if(typeof =
O.isChanged=3D=3D'function')this.isChanged=3DO.isChanged;a.event.implemen=
tOn(this);this.registerEvents(O);if(this.accessKeyUp&&this.accessKeyDown&=
&O.accessKey)H(this,N,'CTRL+'+O.accessKey);var =
ag=3Dthis;N.on('load',function(){if(ag.getInputElement())ag.getInputEleme=
nt().on('focus',function(){N._.tabBarMode=3Dfalse;N._.hasFocus=3Dtrue;ag.=
fire('focus');},ag);});if(this.keyboardFocusable){this.tabIndex=3DO.tabIn=
dex||0;this.focusIndex=3DN._.focusList.push(this)-1;this.on('focus',funct=
ion(){N._.currentFocusIndex=3Dag.focusIndex;});}e.extend(this,O);},hbox:f=
unction(N,O,P,Q,R){if(arguments.length<4)return;this._||(this._=3D{});var=
 =
S=3Dthis._.children=3DO,T=3DR&&R.widths||null,U=3DR&&R.height||null,V=3D{=
},W,X=3Dfunction(){var Z=3D['<tbody><tr =
class=3D"cke_dialog_ui_hbox">'];for(W=3D0;W<P.length;W++){var =
aa=3D'cke_dialog_ui_hbox_child',ab=3D[];if(W=3D=3D=3D0)aa=3D'cke_dialog_u=
i_hbox_first';if(W=3D=3DP.length-1)aa=3D'cke_dialog_ui_hbox_last';Z.push(=
'<td class=3D"',aa,'" role=3D"presentation" =
');if(T){if(T[W])ab.push('width:'+e.cssLength(T[W]));}else =
ab.push('width:'+Math.floor(100/P.length)+'%');if(U)ab.push('height:'+e.c=
ssLength(U));if(R&&R.padding!=3Dundefined)ab.push('padding:'+e.cssLength(=
R.padding));if(ab.length>0)Z.push('style=3D"'+ab.join('; ')+'" =
');Z.push('>',P[W],'</td>');}Z.push('</tr></tbody>');return =
Z.join('');},Y=3D{role:'presentation'};
R&&R.align&&(Y.align=3DR.align);k.dialog.uiElement.call(this,N,R||{type:'=
hbox'},Q,'table',V,Y,X);},vbox:function(N,O,P,Q,R){if(arguments.length<3)=
return;this._||(this._=3D{});var =
S=3Dthis._.children=3DO,T=3DR&&R.width||null,U=3DR&&R.heights||null,V=3Df=
unction(){var W=3D['<table role=3D"presentation" cellspacing=3D"0" =
border=3D"0" =
'];W.push('style=3D"');if(R&&R.expand)W.push('height:100%;');W.push('widt=
h:'+e.cssLength(T||'100%'),';');W.push('"');W.push('align=3D"',e.htmlEnco=
de(R&&R.align||(N.getParentEditor().lang.dir=3D=3D'ltr'?'left':'right')),=
'" ');W.push('><tbody>');for(var X=3D0;X<P.length;X++){var =
Y=3D[];W.push('<tr><td role=3D"presentation" =
');if(T)Y.push('width:'+e.cssLength(T||'100%'));if(U)Y.push('height:'+e.c=
ssLength(U[X]));else =
if(R&&R.expand)Y.push('height:'+Math.floor(100/P.length)+'%');if(R&&R.pad=
ding!=3Dundefined)Y.push('padding:'+e.cssLength(R.padding));if(Y.length>0=
)W.push('style=3D"',Y.join('; '),'" ');W.push(' =
class=3D"cke_dialog_ui_vbox_child">',P[X],'</td></tr>');}W.push('</tbody>=
</table>');return =
W.join('');};k.dialog.uiElement.call(this,N,R||{type:'vbox'},Q,'div',null=
,{role:'presentation'},V);}};})();k.dialog.uiElement.prototype=3D{getElem=
ent:function(){return =
a.document.getById(this.domId);},getInputElement:function(){return =
this.getElement();},getDialog:function(){return =
this._.dialog;},setValue:function(N,O){this.getInputElement().setValue(N)=
;!O&&this.fire('change',{value:N});return =
this;},getValue:function(){return =
this.getInputElement().getValue();},isChanged:function(){return =
false;},selectParentTab:function(){var Q=3Dthis;var =
N=3DQ.getInputElement(),O=3DN,P;while((O=3DO.getParent())&&O.$.className.=
search('cke_dialog_page_contents')=3D=3D-1){}if(!O)return =
Q;P=3DO.getAttribute('name');if(Q._.dialog._.currentTabId!=3DP)Q._.dialog=
.selectPage(P);return =
Q;},focus:function(){this.selectParentTab().getInputElement().focus();ret=
urn this;},registerEvents:function(N){var =
O=3D/^on([A-Z]\w+)/,P,Q=3Dfunction(S,T,U,V){T.on('load',function(){S.getI=
nputElement().on(U,V,S);});};for(var R in =
N){if(!(P=3DR.match(O)))continue;if(this.eventProcessors[R])this.eventPro=
cessors[R].call(this,this._.dialog,N[R]);else =
Q(this,this._.dialog,P[1].toLowerCase(),N[R]);}return =
this;},eventProcessors:{onLoad:function(N,O){N.on('load',O,this);},onShow=
:function(N,O){N.on('show',O,this);},onHide:function(N,O){N.on('hide',O,t=
his);}},accessKeyDown:function(N,O){this.focus();},accessKeyUp:function(N=
,O){},disable:function(){var =
N=3Dthis.getInputElement();N.setAttribute('disabled','true');N.addClass('=
cke_disabled');},enable:function(){var N=3Dthis.getInputElement();
N.removeAttribute('disabled');N.removeClass('cke_disabled');},isEnabled:f=
unction(){return!this.getInputElement().getAttribute('disabled');},isVisi=
ble:function(){return =
this.getInputElement().isVisible();},isFocusable:function(){if(!this.isEn=
abled()||!this.isVisible())return false;return =
true;}};k.dialog.hbox.prototype=3De.extend(new =
k.dialog.uiElement(),{getChild:function(N){var =
O=3Dthis;if(arguments.length<1)return =
O._.children.concat();if(!N.splice)N=3D[N];if(N.length<2)return =
O._.children[N[0]];else return =
O._.children[N[0]]&&O._.children[N[0]].getChild?O._.children[N[0]].getChi=
ld(N.slice(1,N.length)):null;}},true);k.dialog.vbox.prototype=3Dnew =
k.dialog.hbox();(function(){var N=3D{build:function(O,P,Q){var =
R=3DP.children,S,T=3D[],U=3D[];for(var =
V=3D0;V<R.length&&(S=3DR[V]);V++){var =
W=3D[];T.push(W);U.push(a.dialog._.uiElementBuilders[S.type].build(O,S,W)=
);}return new =
k.dialog[P.type](O,U,T,Q,P);}};a.dialog.addUIElement('hbox',N);a.dialog.a=
ddUIElement('vbox',N);})();a.dialogCommand=3Dfunction(N){this.dialogName=3D=
N;};a.dialogCommand.prototype=3D{exec:function(N){N.openDialog(this.dialo=
gName);},canUndo:false,editorFocus:c||b.webkit};(function(){var =
N=3D/^([a]|[^a])+$/,O=3D/^\d*$/,P=3D/^\d*(?:\.\d+)?$/;a.VALIDATE_OR=3D1;a=
.VALIDATE_AND=3D2;a.dialog.validate=3D{functions:function(){return =
function(){var W=3Dthis;var =
Q=3DW&&W.getValue?W.getValue():arguments[0],R=3Dundefined,S=3D2,T=3D[],U;=
for(U=3D0;U<arguments.length;U++){if(typeof =
arguments[U]=3D=3D'function')T.push(arguments[U]);else =
break;}if(U<arguments.length&&typeof =
arguments[U]=3D=3D'string'){R=3Darguments[U];U++;}if(U<arguments.length&&=
typeof arguments[U]=3D=3D'number')S=3Darguments[U];var =
V=3DS=3D=3D2?true:false;for(U=3D0;U<T.length;U++){if(S=3D=3D2)V=3DV&&T[U]=
(Q);else =
V=3DV||T[U](Q);}if(!V){if(R!=3D=3Dundefined)alert(R);if(W&&(W.select||W.f=
ocus))W.select||W.focus();return false;}return =
true;};},regex:function(Q,R){return function(){var T=3Dthis;var =
S=3DT&&T.getValue?T.getValue():arguments[0];if(!Q.test(S)){if(R!=3D=3Dund=
efined)alert(R);if(T&&(T.select||T.focus))if(T.select)T.select();else =
T.focus();return false;}return true;};},notEmpty:function(Q){return =
this.regex(N,Q);},integer:function(Q){return =
this.regex(O,Q);},number:function(Q){return =
this.regex(P,Q);},equals:function(Q,R){return =
this.functions(function(S){return =
S=3D=3DQ;},R);},notEqual:function(Q,R){return =
this.functions(function(S){return =
S!=3DQ;},R);}};a.on('instanceDestroyed',function(Q){if(e.isEmpty(a.instan=
ces)){var R;while(R=3Da.dialog._.currentTop)R.hide();D();}var =
S=3DQ.editor._.storedDialogs;for(var T in =
S)S[T].destroy();});})();})();e.extend(a.editor.prototype,{openDialog:fun=
ction(l,m){var n=3Da.dialog._.dialogDefinitions[l],o=3Dthis.skin.dialog;
if(typeof n=3D=3D'function'&&o._isLoaded){var =
p=3Dthis._.storedDialogs||(this._.storedDialogs=3D{}),q=3Dp[l]||(p[l]=3Dn=
ew a.dialog(this,l));m&&m.call(q,q);q.show();return q;}else =
if(n=3D=3D'failed')throw new Error('[CKEDITOR.dialog.openDialog] Dialog =
"'+l+'" failed when loading definition.');var =
r=3Da.document.getBody(),s=3Dr.$.style.cursor,t=3Dthis;r.setStyle('cursor=
','wait');function u(w){var =
x=3Da.dialog._.dialogDefinitions[l],y=3Dt.skin.dialog;if(!y._isLoaded||v&=
&typeof w=3D=3D'undefined')return;if(typeof =
x!=3D'function')a.dialog._.dialogDefinitions[l]=3D'failed';t.openDialog(l=
,m);r.setStyle('cursor',s);};if(typeof n=3D=3D'string'){var =
v=3D1;a.scriptLoader.load(a.getUrl(n),u);}a.skins.load(this,'dialog',u);r=
eturn =
null;}});j.add('dialog',{requires:['dialogui']});j.add('styles',{requires=
:['selection']});a.editor.prototype.attachStyleStateChange=3Dfunction(l,m=
){var =
n=3Dthis._.styleStateChangeCallbacks;if(!n){n=3Dthis._.styleStateChangeCa=
llbacks=3D[];this.on('selectionChange',function(o){for(var =
p=3D0;p<n.length;p++){var =
q=3Dn[p],r=3Dq.style.checkActive(o.data.path)?1:2;if(q.state!=3D=3Dr){q.f=
n.call(this,r);q.state=3Dr;}}});}n.push({style:l,fn:m});};a.STYLE_BLOCK=3D=
1;a.STYLE_INLINE=3D2;a.STYLE_OBJECT=3D3;(function(){var =
l=3D{address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1},m=3D{a:1,em=
bed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1=
,dd:1,form:1},n=3D/\s*(?:;\s*|$)/;a.style=3Dfunction(P,Q){if(Q){P=3De.clo=
ne(P);H(P.attributes,Q);H(P.styles,Q);}var =
R=3Dthis.element=3D(P.element||'*').toLowerCase();this.type=3DR=3D=3D'#'|=
|l[R]?1:m[R]?3:2;this._=3D{definition:P};};a.style.prototype=3D{apply:fun=
ction(P){O.call(this,P,false);},remove:function(P){O.call(this,P,true);},=
applyToRange:function(P){var =
Q=3Dthis;return(Q.applyToRange=3DQ.type=3D=3D2?o:Q.type=3D=3D1?s:Q.type=3D=
=3D3?q:null).call(Q,P);},removeFromRange:function(P){var =
Q=3Dthis;return(Q.removeFromRange=3DQ.type=3D=3D2?p:Q.type=3D=3D3?r:null)=
.call(Q,P);},applyToObject:function(P){F(P,this);},checkActive:function(P=
){var T=3Dthis;switch(T.type){case 1:return =
T.checkElementRemovable(P.block||P.blockLimit,true);case 3:case 2:var =
Q=3DP.elements;for(var =
R=3D0,S;R<Q.length;R++){S=3DQ[R];if(T.type=3D=3D2&&(S=3D=3DP.block||S=3D=3D=
P.blockLimit))continue;if(T.type=3D=3D3&&!(S.getName() in =
m))continue;if(T.checkElementRemovable(S,true))return true;}}return =
false;},checkApplicable:function(P){switch(this.type){case 2:case =
1:break;case 3:return =
P.lastElement.getAscendant(this.element,true);}return =
true;},checkElementRemovable:function(P,Q){if(!P)return false;var =
R=3Dthis._.definition,S;if(P.getName()=3D=3Dthis.element){if(!Q&&!P.hasAt=
tributes())return true;
S=3DI(R);if(S._length){for(var T in S){if(T=3D=3D'_length')continue;var =
U=3DP.getAttribute(T)||'';if(T=3D=3D'style'?N(S[T],L(U,false)):S[T]=3D=3D=
U){if(!Q)return true;}else if(Q)return false;}if(Q)return true;}else =
return true;}var =
V=3DJ(this)[P.getName()];if(V){if(!(S=3DV.attributes))return =
true;for(var W=3D0;W<S.length;W++){T=3DS[W][0];var =
X=3DP.getAttribute(T);if(X){var Y=3DS[W][1];if(Y=3D=3D=3Dnull||typeof =
Y=3D=3D'string'&&X=3D=3DY||Y.test(X))return true;}}}return =
false;},buildPreview:function(){var =
P=3Dthis._.definition,Q=3D[],R=3DP.element;if(R=3D=3D'bdo')R=3D'span';Q=3D=
['<',R];var S=3DP.attributes;if(S)for(var T in S)Q.push(' =
',T,'=3D"',S[T],'"');var U=3Da.style.getStyleText(P);if(U)Q.push(' =
style=3D"',U,'"');Q.push('>',P.name,'</',R,'>');return =
Q.join('');}};a.style.getStyleText=3Dfunction(P){var =
Q=3DP._ST;if(Q)return Q;Q=3DP.styles;var =
R=3DP.attributes&&P.attributes.style||'',S=3D'';if(R.length)R=3DR.replace=
(n,';');for(var T in Q){var =
U=3DQ[T],V=3D(T+':'+U).replace(n,';');if(U=3D=3D'inherit')S+=3DV;else =
R+=3DV;}if(R.length)R=3DL(R);R+=3DS;return P._ST=3DR;};function o(P){var =
al=3Dthis;var Q=3DP.document;if(P.collapsed){var =
R=3DE(al,Q);P.insertNode(R);P.moveToPosition(R,2);return;}var =
S=3Dal.element,T=3Dal._.definition,U,V=3Df[S]||(U=3Dtrue,f.span);P.enlarg=
e(1);P.trim();var =
W=3DP.createBookmark(),X=3DW.startNode,Y=3DW.endNode,Z=3DX,aa;while(Z){va=
r ab=3Dfalse;if(Z.equals(Y)){Z=3Dnull;ab=3Dtrue;}else{var =
ac=3DZ.type,ad=3Dac=3D=3D1?Z.getName():null;if(ad&&Z.getAttribute('_cke_b=
ookmark')){Z=3DZ.getNextSourceNode(true);continue;}if(!ad||V[ad]&&(Z.getP=
osition(Y)|4|0|8)=3D=3D4+0+8&&(!T.childRule||T.childRule(Z))){var =
ae=3DZ.getParent();if(ae&&((ae.getDtd()||f.span)[S]||U)&&(!T.parentRule||=
T.parentRule(ae))){if(!aa&&(!ad||!f.$removeEmpty[ad]||(Z.getPosition(Y)|4=
|0|8)=3D=3D4+0+8)){aa=3Dnew =
d.range(Q);aa.setStartBefore(Z);}if(ac=3D=3D3||ac=3D=3D1&&!Z.getChildCoun=
t()){var =
af=3DZ,ag;while(!af.$.nextSibling&&(ag=3Daf.getParent(),V[ag.getName()])&=
&(ag.getPosition(X)|2|0|8)=3D=3D2+0+8&&(!T.childRule||T.childRule(ag)))af=
=3Dag;aa.setEndAfter(af);if(!af.$.nextSibling)ab=3Dtrue;}}else =
ab=3Dtrue;}else =
ab=3Dtrue;Z=3DZ.getNextSourceNode();}if(ab&&aa&&!aa.collapsed){var =
ah=3DE(al,Q),ai=3Daa.getCommonAncestor();while(ah&&ai){if(ai.getName()=3D=
=3DS){for(var aj in =
T.attributes){if(ah.getAttribute(aj)=3D=3Dai.getAttribute(aj))ah.removeAt=
tribute(aj);}for(var ak in =
T.styles){if(ah.getStyle(ak)=3D=3Dai.getStyle(ak))ah.removeStyle(ak);}if(=
!ah.hasAttributes()){ah=3Dnull;break;}}ai=3Dai.getParent();}if(ah){aa.ext=
ractContents().appendTo(ah);B(al,ah);aa.insertNode(ah);ah.mergeSiblings()=
;if(!c)ah.$.normalize();}aa=3Dnull;}}P.moveToBookmark(W);P.shrink(2);};fu=
nction p(P){P.enlarge(1);
var Q=3DP.createBookmark(),R=3DQ.startNode;if(P.collapsed){var S=3Dnew =
d.elementPath(R.getParent()),T;for(var =
U=3D0,V;U<S.elements.length&&(V=3DS.elements[U]);U++){if(V=3D=3DS.block||=
V=3D=3DS.blockLimit)break;if(this.checkElementRemovable(V)){var =
W;if(P.collapsed&&(P.checkBoundaryOfElement(V,2)||(W=3DP.checkBoundaryOfE=
lement(V,1)))){T=3DV;T.match=3DW?'start':'end';}else{V.mergeSiblings();A(=
this,V);}}}if(T){var X=3DR;for(U=3D0;true;U++){var =
Y=3DS.elements[U];if(Y.equals(T))break;else if(Y.match)continue;else =
Y=3DY.clone();Y.append(X);X=3DY;}X[T.match=3D=3D'start'?'insertBefore':'i=
nsertAfter'](T);}}else{var Z=3DQ.endNode,aa=3Dthis;function ab(){var =
ae=3Dnew d.elementPath(R.getParent()),af=3Dnew =
d.elementPath(Z.getParent()),ag=3Dnull,ah=3Dnull;for(var =
ai=3D0;ai<ae.elements.length;ai++){var =
aj=3Dae.elements[ai];if(aj=3D=3Dae.block||aj=3D=3Dae.blockLimit)break;if(=
aa.checkElementRemovable(aj))ag=3Daj;}for(ai=3D0;ai<af.elements.length;ai=
++){aj=3Daf.elements[ai];if(aj=3D=3Daf.block||aj=3D=3Daf.blockLimit)break=
;if(aa.checkElementRemovable(aj))ah=3Daj;}if(ah)Z.breakParent(ah);if(ag)R=
.breakParent(ag);};ab();var ac=3DR.getNext();while(!ac.equals(Z)){var =
ad=3Dac.getNextSourceNode();if(ac.type=3D=3D1&&this.checkElementRemovable=
(ac)){if(ac.getName()=3D=3Dthis.element)A(this,ac);else =
C(ac,J(this)[ac.getName()]);if(ad.type=3D=3D1&&ad.contains(R)){ab();ad=3D=
R.getNext();}}ac=3Dad;}}P.moveToBookmark(Q);};function q(P){var =
Q=3DP.getCommonAncestor(true,true),R=3DQ.getAscendant(this.element,true);=
R&&F(R,this);};function r(P){var =
Q=3DP.getCommonAncestor(true,true),R=3DQ.getAscendant(this.element,true);=
if(!R)return;var =
S=3Dthis,T=3DS._.definition,U=3DT.attributes,V=3Da.style.getStyleText(T);=
if(U)for(var W in U)R.removeAttribute(W,U[W]);if(T.styles)for(var X in =
T.styles){if(!T.styles.hasOwnProperty(X))continue;R.removeStyle(X);}};fun=
ction s(P){var =
Q=3DP.createBookmark(true),R=3DP.createIterator();R.enforceRealBlocks=3Dt=
rue;if(this._.enterMode)R.enlargeBr=3Dthis._.enterMode!=3D2;var =
S,T=3DP.document,U;while(S=3DR.getNextParagraph()){var =
V=3DE(this,T);t(S,V);}P.moveToBookmark(Q);};function t(P,Q){var =
R=3DQ.is('pre'),S=3DP.is('pre'),T=3DR&&!S,U=3D!R&&S;if(T)Q=3Dz(P,Q);else =
if(U)Q=3Dy(w(P),Q);else P.moveChildren(Q);Q.replace(P);if(R)v(Q);};var =
u=3Dd.walker.whitespaces(true);function v(P){var =
Q;if(!((Q=3DP.getPrevious(u))&&Q.is&&Q.is('pre')))return;var =
R=3Dx(Q.getHtml(),/\n$/,'')+'\n\n'+x(P.getHtml(),/^\n/,'');if(c)P.$.outer=
HTML=3D'<pre>'+R+'</pre>';else P.setHtml(R);Q.remove();};function =
w(P){var =
Q=3D/(\S\s*)\n(?:\s|(<span[^>]+_cke_bookmark.*?\/span>))*\n(?!$)/gi,R=3DP=
.getName(),S=3Dx(P.getOuterHtml(),Q,function(U,V,W){return =
V+'</pre>'+W+'<pre>';
}),T=3D[];S.replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi,function(U,V){T.push(=
V);});return T;};function x(P,Q,R){var =
S=3D'',T=3D'';P=3DP.replace(/(^<span[^>]+_cke_bookmark.*?\/span>)|(<span[=
^>]+_cke_bookmark.*?\/span>$)/gi,function(U,V,W){V&&(S=3DV);W&&(T=3DW);re=
turn '';});return S+P.replace(Q,R)+T;};function y(P,Q){var R=3Dnew =
d.documentFragment(Q.getDocument());for(var S=3D0;S<P.length;S++){var =
T=3DP[S];T=3DT.replace(/(\r\n|\r)/g,'\n');T=3Dx(T,/^[ =
\t]*\n/,'');T=3Dx(T,/\n$/,'');T=3Dx(T,/^[ \t]+|[ =
\t]+$/g,function(V,W,X){if(V.length=3D=3D1)return '&nbsp;';else =
if(!W)return e.repeat('&nbsp;',V.length-1)+' ';else return ' =
'+e.repeat('&nbsp;',V.length-1);});T=3DT.replace(/\n/g,'<br>');T=3DT.repl=
ace(/[ \t]{2,}/g,function(V){return e.repeat('&nbsp;',V.length-1)+' =
';});var U=3DQ.clone();U.setHtml(T);R.append(U);}return R;};function =
z(P,Q){var R=3DP.getHtml();R=3Dx(R,/(?:^[ \t\n\r]+)|(?:[ =
\t\n\r]+$)/g,'');R=3DR.replace(/[ \t\r\n]*(<br[^>]*>)[ =
\t\r\n]*/gi,'$1');R=3DR.replace(/([ \t\n\r]+|&nbsp;)/g,' =
');R=3DR.replace(/<br\b[^>]*>/gi,'\n');if(c){var =
S=3DP.getDocument().createElement('div');S.append(Q);Q.$.outerHTML=3D'<pr=
e>'+R+'</pre>';Q=3DS.getFirst().remove();}else Q.setHtml(R);return =
Q;};function A(P,Q){var =
R=3DP._.definition,S=3De.extend({},R.attributes,J(P)[Q.getName()]),T=3DR.=
styles,U=3De.isEmpty(S)&&e.isEmpty(T);for(var V in =
S){if((V=3D=3D'class'||P._.definition.fullMatch)&&Q.getAttribute(V)!=3DK(=
V,S[V]))continue;U=3DQ.hasAttribute(V);Q.removeAttribute(V);}for(var W =
in =
T){if(P._.definition.fullMatch&&Q.getStyle(W)!=3DK(W,T[W],true))continue;=
U=3DU||!!Q.getStyle(W);Q.removeStyle(W);}U&&D(Q);};function B(P,Q){var =
R=3DP._.definition,S=3DR.attributes,T=3DR.styles,U=3DJ(P),V=3DQ.getElemen=
tsByTag(P.element);for(var =
W=3DV.count();--W>=3D0;)A(P,V.getItem(W));for(var X in =
U){if(X!=3DP.element){V=3DQ.getElementsByTag(X);for(W=3DV.count()-1;W>=3D=
0;W--){var Y=3DV.getItem(W);C(Y,U[X]);}}}};function C(P,Q){var =
R=3DQ&&Q.attributes;if(R)for(var S=3D0;S<R.length;S++){var =
T=3DR[S][0],U;if(U=3DP.getAttribute(T)){var =
V=3DR[S][1];if(V=3D=3D=3Dnull||V.test&&V.test(U)||typeof =
V=3D=3D'string'&&U=3D=3DV)P.removeAttribute(T);}}D(P);};function =
D(P){if(!P.hasAttributes()){var =
Q=3DP.getFirst(),R=3DP.getLast();P.remove(true);if(Q){Q.type=3D=3D1&&Q.me=
rgeSiblings();if(R&&!Q.equals(R)&&R.type=3D=3D1)R.mergeSiblings();}}};fun=
ction E(P,Q){var =
R,S=3DP._.definition,T=3DP.element;if(T=3D=3D'*')T=3D'span';R=3Dnew =
h(T,Q);return F(R,P);};function F(P,Q){var =
R=3DQ._.definition,S=3DR.attributes,T=3Da.style.getStyleText(R);if(S)for(=
var U in S)P.setAttribute(U,S[U]);if(R.styles)for(var V in =
R.styles){if(!R.styles.hasOwnProperty(V))continue;P.setStyle(V,R.styles[V=
]);
}return P;};var G=3D/#\((.+?)\)/g;function H(P,Q){for(var R in =
P)P[R]=3DP[R].replace(G,function(S,T){return Q[T];});};function I(P){var =
Q=3DP._AC;if(Q)return Q;Q=3D{};var R=3D0,S=3DP.attributes;if(S)for(var T =
in S){R++;Q[T]=3DS[T];}var =
U=3Da.style.getStyleText(P);if(U){if(!Q.style)R++;Q.style=3DU;}Q._length=3D=
R;return P._AC=3DQ;};function J(P){if(P._.overrides)return =
P._.overrides;var =
Q=3DP._.overrides=3D{},R=3DP._.definition.overrides;if(R){if(!e.isArray(R=
))R=3D[R];for(var S=3D0;S<R.length;S++){var T=3DR[S],U,V,W;if(typeof =
T=3D=3D'string')U=3DT.toLowerCase();else{U=3DT.element?T.element.toLowerC=
ase():P.element;W=3DT.attributes;}V=3DQ[U]||(Q[U]=3D{});if(W){var =
X=3DV.attributes=3DV.attributes||[];for(var Y in =
W)X.push([Y.toLowerCase(),W[Y]]);}}}return Q;};function K(P,Q,R){var =
S=3Dnew h('span');S[R?'setStyle':'setAttribute'](P,Q);return =
S[R?'getStyle':'getAttribute'](P);};function L(P,Q){var =
R;if(Q!=3D=3Dfalse){var S=3Dnew =
h('span');S.setAttribute('style',P);R=3DS.getAttribute('style')||'';}else=
 R=3DP;return =
R.replace(/\s*([;:])\s*/,'$1').replace(/([^\s;])$/,'$1;').replace(/,\s+/g=
,',').toLowerCase();};function M(P){var =
Q=3D{};P.replace(/&quot;/g,'"').replace(/\s*([^ =
:;]+)\s*:\s*([^;]+)\s*(?=3D;|$)/g,function(R,S,T){Q[S]=3DT;});return =
Q;};function N(P,Q){typeof P=3D=3D'string'&&(P=3DM(P));typeof =
Q=3D=3D'string'&&(Q=3DM(Q));for(var R in P){if(!(R in =
Q&&(Q[R]=3D=3DP[R]||P[R]=3D=3D'inherit'||Q[R]=3D=3D'inherit')))return =
false;}return true;};function O(P,Q){var =
R=3DP.getSelection(),S=3DR.createBookmarks(),T=3DR.getRanges(true),U=3DQ?=
this.removeFromRange:this.applyToRange,V,W=3DT.createIterator();while(V=3D=
W.getNextRange())U.call(this,V);if(S.length=3D=3D1&&S[0].collapsed){R.sel=
ectRanges(T);S[0].startNode.remove();}else =
R.selectBookmarks(S);};})();a.styleCommand=3Dfunction(l){this.style=3Dl;}=
;a.styleCommand.prototype.exec=3Dfunction(l){var n=3Dthis;l.focus();var =
m=3Dl.document;if(m)if(n.state=3D=3D2)n.style.apply(m);else =
if(n.state=3D=3D1)n.style.remove(m);return!!m;};a.stylesSet=3Dnew =
a.resourceManager('','stylesSet');a.addStylesSet=3De.bind(a.stylesSet.add=
,a.stylesSet);a.loadStylesSet=3Dfunction(l,m,n){a.stylesSet.addExternal(l=
,m,'');a.stylesSet.load(l,n);};a.editor.prototype.getStylesSet=3Dfunction=
(l){if(!this._.stylesDefinitions){var =
m=3Dthis,n=3Dm.config.stylesCombo_stylesSet||m.config.stylesSet||'default=
';if(n instanceof Array){m._.stylesDefinitions=3Dn;l(n);return;}var =
o=3Dn.split(':'),p=3Do[0],q=3Do[1],r=3Dj.registered.styles.path;a.stylesS=
et.addExternal(p,q?o.slice(1).join(':'):r+'styles/'+p+'.js','');a.stylesS=
et.load(p,function(s){m._.stylesDefinitions=3Ds[p];l(m._.stylesDefinition=
s);});}else l(this._.stylesDefinitions);
};j.add('domiterator');(function(){function l(o){var =
p=3Dthis;if(arguments.length<1)return;p.range=3Do;p.forceBrBreak=3Dfalse;=
p.enlargeBr=3Dtrue;p.enforceRealBlocks=3Dfalse;p._||(p._=3D{});};var =
m=3D/^[\r\n\t =
]+$/,n=3Dd.walker.bookmark();l.prototype=3D{getNextParagraph:function(o){=
var P=3Dthis;var =
p,q,r,s,t,u;if(!P._.lastNode){q=3DP.range.clone();q.shrink(1,true);s=3Dq.=
endContainer.hasAscendant('pre',true)||q.startContainer.hasAscendant('pre=
',true);q.enlarge(P.forceBrBreak&&!s||!P.enlargeBr?3:2);var v=3Dnew =
d.walker(q),w=3Dd.walker.bookmark(true,true);v.evaluator=3Dw;P._.nextNode=
=3Dv.next();v=3Dnew d.walker(q);v.evaluator=3Dw;var =
x=3Dv.previous();P._.lastNode=3Dx.getNextSourceNode(true);if(P._.lastNode=
&&P._.lastNode.type=3D=3D3&&!e.trim(P._.lastNode.getText())&&P._.lastNode=
.getParent().isBlockBoundary()){var y=3Dnew =
d.range(q.document);y.moveToPosition(P._.lastNode,4);if(y.checkEndOfBlock=
()){var z=3Dnew =
d.elementPath(y.endContainer),A=3Dz.block||z.blockLimit;P._.lastNode=3DA.=
getNextSourceNode(true);}}if(!P._.lastNode){P._.lastNode=3DP._.docEndMark=
er=3Dq.document.createText('');P._.lastNode.insertAfter(x);}q=3Dnull;}var=
 B=3DP._.nextNode;x=3DP._.lastNode;P._.nextNode=3Dnull;while(B){var =
C=3Dfalse,D=3DB.hasAscendant('pre'),E=3DB.type!=3D1,F=3Dfalse;if(!E){var =
G=3DB.getName();if(B.isBlockBoundary(P.forceBrBreak&&!D&&{br:1})){if(G=3D=
=3D'br')E=3Dtrue;else =
if(!q&&!B.getChildCount()&&G!=3D'hr'){p=3DB;r=3DB.equals(x);break;}if(q){=
q.setEndAt(B,3);if(G!=3D'br')P._.nextNode=3DB;}C=3Dtrue;}else{if(B.getFir=
st()){if(!q){q=3Dnew =
d.range(P.range.document);q.setStartAt(B,3);}B=3DB.getFirst();continue;}E=
=3Dtrue;}}else =
if(B.type=3D=3D3)if(m.test(B.getText()))E=3Dfalse;if(E&&!q){q=3Dnew =
d.range(P.range.document);q.setStartAt(B,3);}r=3D(!C||E)&&B.equals(x);if(=
q&&!C)while(!B.getNext()&&!r){var =
H=3DB.getParent();if(H.isBlockBoundary(P.forceBrBreak&&!D&&{br:1})){C=3Dt=
rue;r=3Dr||H.equals(x);break;}B=3DH;E=3Dtrue;r=3DB.equals(x);F=3Dtrue;}if=
(E)q.setEndAt(B,4);B=3DB.getNextSourceNode(F,null,x);r=3D!B;if(r||C&&q)br=
eak;}if(!p){if(!q){P._.docEndMarker&&P._.docEndMarker.remove();P._.nextNo=
de=3Dnull;return null;}var I=3Dnew =
d.elementPath(q.startContainer),J=3DI.blockLimit,K=3D{div:1,th:1,td:1};p=3D=
I.block;if(!p&&!P.enforceRealBlocks&&K[J.getName()]&&q.checkStartOfBlock(=
)&&q.checkEndOfBlock())p=3DJ;else =
if(!p||P.enforceRealBlocks&&p.getName()=3D=3D'li'){p=3DP.range.document.c=
reateElement(o||'p');q.extractContents().appendTo(p);p.trim();q.insertNod=
e(p);t=3Du=3Dtrue;}else =
if(p.getName()!=3D'li'){if(!q.checkStartOfBlock()||!q.checkEndOfBlock()){=
p=3Dp.clone(false);q.extractContents().appendTo(p);p.trim();var =
L=3Dq.splitBlock();t=3D!L.wasStartOfBlock;
u=3D!L.wasEndOfBlock;q.insertNode(p);}}else =
if(!r)P._.nextNode=3Dp.equals(x)?null:q.getBoundaryNodes().endNode.getNex=
tSourceNode(true,null,x);}if(t){var =
M=3Dp.getPrevious();if(M&&M.type=3D=3D1)if(M.getName()=3D=3D'br')M.remove=
();else =
if(M.getLast()&&M.getLast().$.nodeName.toLowerCase()=3D=3D'br')M.getLast(=
).remove();}if(u){var =
N=3Dd.walker.bookmark(false,true),O=3Dp.getLast();if(O&&O.type=3D=3D1&&O.=
getName()=3D=3D'br')if(c||O.getPrevious(N)||O.getNext(N))O.remove();}if(!=
P._.nextNode)P._.nextNode=3Dr||p.equals(x)?null:p.getNextSourceNode(true,=
null,x);return p;}};d.range.prototype.createIterator=3Dfunction(){return =
new =
l(this);};})();j.add('panelbutton',{requires:['button'],beforeInit:functi=
on(l){l.ui.addHandler(4,k.panelButton.handler);}});a.UI_PANELBUTTON=3D4;(=
function(){var l=3Dfunction(m){var o=3Dthis;var =
n=3Do._;if(n.state=3D=3D0)return;o.createPanel(m);if(n.on){n.panel.hide()=
;return;}n.panel.showBlock(o._.id,o.document.getById(o._.id),4);};k.panel=
Button=3De.createClass({base:k.button,$:function(m){var o=3Dthis;var =
n=3Dm.panel;delete =
m.panel;o.base(m);o.document=3Dn&&n.parent&&n.parent.getDocument()||a.doc=
ument;n.block=3D{attributes:n.attributes};o.hasArrow=3Dtrue;o.click=3Dl;o=
._=3D{panelDefinition:n};},statics:{handler:{create:function(m){return =
new k.panelButton(m);}}},proto:{createPanel:function(m){var =
n=3Dthis._;if(n.panel)return;var =
o=3Dthis._.panelDefinition||{},p=3Dthis._.panelDefinition.block,q=3Do.par=
ent||a.document.getBody(),r=3Dthis._.panel=3Dnew =
k.floatPanel(m,q,o),s=3Dr.addBlock(n.id,p),t=3Dthis;r.onShow=3Dfunction()=
{if(t.className)this.element.getFirst().addClass(t.className+'_panel');n.=
oldState=3Dt._.state;t.setState(1);n.on=3D1;if(t.onOpen)t.onOpen();};r.on=
Hide=3Dfunction(){if(t.className)this.element.getFirst().removeClass(t.cl=
assName+'_panel');t.setState(n.oldState);n.on=3D0;if(t.onClose)t.onClose(=
);};r.onEscape=3Dfunction(){r.hide();t.document.getById(n.id).focus();};i=
f(this.onBlock)this.onBlock(r,s);s.onHide=3Dfunction(){n.on=3D0;t.setStat=
e(2);};}}});})();j.add('floatpanel',{requires:['panel']});(function(){var=
 l=3D{},m=3Dfalse;function n(o,p,q,r,s){var =
t=3Dp.getUniqueId()+'-'+q.getUniqueId()+'-'+o.skinName+'-'+o.lang.dir+(o.=
uiColor&&'-'+o.uiColor||'')+(r.css&&'-'+r.css||'')+(s&&'-'+s||''),u=3Dl[t=
];if(!u){u=3Dl[t]=3Dnew =
k.panel(p,r);u.element=3Dq.append(h.createFromHtml(u.renderHtml(o),p));u.=
element.setStyles({display:'none',position:'absolute'});}return =
u;};k.floatPanel=3De.createClass({$:function(o,p,q,r){q.forceIFrame=3Dtru=
e;var =
s=3Dp.getDocument(),t=3Dn(o,s,p,q,r||0),u=3Dt.element,v=3Du.getFirst().ge=
tFirst();this.element=3Du;this._=3D{panel:t,parentElement:p,definition:q,=
document:s,iframe:v,children:[],dir:o.lang.dir};
},proto:{addBlock:function(o,p){return =
this._.panel.addBlock(o,p);},addListBlock:function(o,p){return =
this._.panel.addListBlock(o,p);},getBlock:function(o){return =
this._.panel.getBlock(o);},showBlock:function(o,p,q,r,s){var =
t=3Dthis._.panel,u=3Dt.showBlock(o);this.allowBlur(false);m=3Dtrue;var =
v=3Dthis.element,w=3Dthis._.iframe,x=3Dthis._.definition,y=3Dp.getDocumen=
tPosition(v.getDocument()),z=3Dthis._.dir=3D=3D'rtl',A=3Dy.x+(r||0),B=3Dy=
.y+(s||0);if(z&&(q=3D=3D1||q=3D=3D4))A+=3Dp.$.offsetWidth;else =
if(!z&&(q=3D=3D2||q=3D=3D3))A+=3Dp.$.offsetWidth-1;if(q=3D=3D3||q=3D=3D4)=
B+=3Dp.$.offsetHeight-1;this._.panel._.offsetParentId=3Dp.getId();v.setSt=
yles({top:'-30000px',display:''});v.setOpacity(0);v.getFirst().removeStyl=
e('width');if(!this._.blurSet){var C=3Dc?w:new =
d.window(w.$.contentWindow);a.event.useCapture=3Dtrue;C.on('blur',functio=
n(D){var F=3Dthis;if(!F.allowBlur())return;var =
E;if(c&&!F.allowBlur()||(E=3DD.data.getTarget())&&E.getName&&E.getName()!=
=3D'iframe')return;if(F.visible&&!F._.activeChild&&!m)F.hide();},this);C.=
on('focus',function(){this._.focused=3Dtrue;this.hideChild();this.allowBl=
ur(true);},this);a.event.useCapture=3Dfalse;this._.blurSet=3D1;}t.onEscap=
e=3De.bind(function(D){if(this.onEscape&&this.onEscape(D)=3D=3D=3Dfalse)r=
eturn =
false;},this);e.setTimeout(function(){if(z)A-=3Dv.$.offsetWidth;var =
D=3De.bind(function(){var E=3Dv.getFirst();if(u.autoSize){var =
F=3Du.element.$;if(b.gecko||b.opera)F=3DF.parentNode;if(c)F=3DF.document.=
body;var =
G=3DF.scrollWidth;if(c&&b.quirks&&G>0)G+=3D(E.$.offsetWidth||0)-(E.$.clie=
ntWidth||0);G+=3D4;E.setStyle('width',G+'px');u.element.addClass('cke_fra=
meLoaded');var =
H=3Du.element.$.scrollHeight;if(c&&b.quirks&&H>0)H+=3D(E.$.offsetHeight||=
0)-(E.$.clientHeight||0);E.setStyle('height',H+'px');t._.currentBlock.ele=
ment.setStyle('display','none').removeStyle('display');}else =
E.removeStyle('height');var =
I=3Dt.element,J=3DI.getWindow(),K=3DJ.getScrollPosition(),L=3DJ.getViewPa=
neSize(),M=3D{height:I.$.offsetHeight,width:I.$.offsetWidth};if(z?A<0:A+M=
.width>L.width+K.x)A+=3DM.width*(z?1:-1);if(B+M.height>L.height+K.y)B-=3D=
M.height;if(c){var N=3Dnew =
h(v.$.offsetParent),O=3DN;if(O.getName()=3D=3D'html')O=3DO.getDocument().=
getBody();if(O.getComputedStyle('direction')=3D=3D'rtl')if(b.ie8Compat)A-=
=3Dv.getDocument().getDocumentElement().$.scrollLeft*2;else =
A-=3DN.$.scrollWidth-N.$.clientWidth;}v.setStyles({top:B+'px',left:A+'px'=
});v.setOpacity(1);},this);t.isLoaded?D():t.onLoad=3DD;e.setTimeout(funct=
ion(){w.$.contentWindow.focus();this.allowBlur(true);},0,this);},0,this);=
this.visible=3D1;if(this.onShow)this.onShow.call(this);m=3Dfalse;},hide:f=
unction(){var =
o=3Dthis;if(o.visible&&(!o.onHide||o.onHide.call(o)!=3D=3Dtrue)){o.hideCh=
ild();
o.element.setStyle('display','none');o.visible=3D0;}},allowBlur:function(=
o){var p=3Dthis._.panel;if(o!=3Dundefined)p.allowBlur=3Do;return =
p.allowBlur;},showAsChild:function(o,p,q,r,s,t){if(this._.activeChild=3D=3D=
o&&o._.panel._.offsetParentId=3D=3Dq.getId())return;this.hideChild();o.on=
Hide=3De.bind(function(){e.setTimeout(function(){if(!this._.focused)this.=
hide();},0,this);},this);this._.activeChild=3Do;this._.focused=3Dfalse;o.=
showBlock(p,q,r,s,t);if(b.ie7Compat||b.ie8&&b.ie6Compat)setTimeout(functi=
on(){o.element.getChild(0).$.style.cssText+=3D'';},100);},hideChild:funct=
ion(){var o=3Dthis._.activeChild;if(o){delete o.onHide;delete =
this._.activeChild;o.hide();}}}});a.on('instanceDestroyed',function(){var=
 o=3De.isEmpty(a.instances);for(var p in l){var =
q=3Dl[p];if(o)q.destroy();else =
q.element.hide();}o&&(l=3D{});});})();j.add('menu',{beforeInit:function(l=
){var =
m=3Dl.config.menu_groups.split(','),n=3Dl._.menuGroups=3D{},o=3Dl._.menuI=
tems=3D{};for(var =
p=3D0;p<m.length;p++)n[m[p]]=3Dp+1;l.addMenuGroup=3Dfunction(q,r){n[q]=3D=
r||100;};l.addMenuItem=3Dfunction(q,r){if(n[r.group])o[q]=3Dnew =
a.menuItem(this,q,r);};l.addMenuItems=3Dfunction(q){for(var r in =
q)this.addMenuItem(r,q[r]);};l.getMenuItem=3Dfunction(q){return =
o[q];};},requires:['floatpanel']});(function(){a.menu=3De.createClass({$:=
function(m,n){var =
q=3Dthis;n=3Dq._.definition=3Dn||{};q.id=3D'cke_'+e.getNextNumber();q.edi=
tor=3Dm;q.items=3D[];q._.level=3Dn.level||1;var =
o=3De.extend({},n.panel,{css:m.skin.editor.css,level:q._.level-1,block:{}=
}),p=3Do.block.attributes=3Do.attributes||{};!p.role&&(p.role=3D'menu');q=
._.panelDefinition=3Do;},_:{showSubMenu:function(m){var u=3Dthis;var =
n=3Du._.subMenu,o=3Du.items[m],p=3Do.getItems&&o.getItems();if(!p){u._.pa=
nel.hideChild();return;}var =
q=3Du._.panel.getBlock(u.id);q._.focusIndex=3Dm;if(n)n.removeAll();else{n=
=3Du._.subMenu=3Dnew =
a.menu(u.editor,e.extend({},u._.definition,{level:u._.level+1},true));n.p=
arent=3Du;n.onClick=3De.bind(u.onClick,u);n.onEscape=3Du.onEscape;}for(va=
r r in p){var =
s=3Du.editor.getMenuItem(r);if(s){s.state=3Dp[r];n.add(s);}}var =
t=3Du._.panel.getBlock(u.id).element.getDocument().getById(u.id+String(m)=
);n.show(t,2);}},proto:{add:function(m){if(!m.order)m.order=3Dthis.items.=
length;this.items.push(m);},removeAll:function(){this.items=3D[];},show:f=
unction(m,n,o,p){var =
q=3Dthis.items,r=3Dthis.editor,s=3Dthis._.panel,t=3Dthis._.element;if(!s)=
{s=3Dthis._.panel=3Dnew =
k.floatPanel(this.editor,a.document.getBody(),this._.panelDefinition,this=
._.level);s.onEscape=3De.bind(function(E){if(this.onEscape&&this.onEscape=
(E)=3D=3D=3Dfalse)return =
false;},this);s.onHide=3De.bind(function(){this.onHide&&this.onHide();
},this);var =
u=3Ds.addBlock(this.id,this._.panelDefinition.block);u.autoSize=3Dtrue;va=
r =
v=3Du.keys;v[40]=3D'next';v[9]=3D'next';v[38]=3D'prev';v[2000+9]=3D'prev'=
;v[32]=3D'click';v[r.lang.dir=3D=3D'rtl'?37:39]=3D'click';t=3Dthis._.elem=
ent=3Du.element;t.addClass(r.skinClass);var =
w=3Dt.getDocument();w.getBody().setStyle('overflow','hidden');w.getElemen=
tsByTag('html').getItem(0).setStyle('overflow','hidden');this._.itemOverF=
n=3De.addFunction(function(E){var =
F=3Dthis;clearTimeout(F._.showSubTimeout);F._.showSubTimeout=3De.setTimeo=
ut(F._.showSubMenu,r.config.menu_subMenuDelay,F,[E]);},this);this._.itemO=
utFn=3De.addFunction(function(E){clearTimeout(this._.showSubTimeout);},th=
is);this._.itemClickFn=3De.addFunction(function(E){var G=3Dthis;var =
F=3DG.items[E];if(F.state=3D=3D0){G.hide();return;}if(F.getItems)G._.show=
SubMenu(E);else G.onClick&&G.onClick(F);},this);}l(q);var =
x=3Dr.container.getChild(1),y=3Dx.hasClass('cke_mixed_dir_content')?' =
cke_mixed_dir_content':'',z=3D['<div class=3D"cke_menu'+y+'" =
role=3D"presentation">'],A=3Dq.length,B=3DA&&q[0].group;for(var =
C=3D0;C<A;C++){var D=3Dq[C];if(B!=3DD.group){z.push('<div =
class=3D"cke_menuseparator" =
role=3D"separator"></div>');B=3DD.group;}D.render(this,C,z);}z.push('</di=
v>');t.setHtml(z.join(''));if(this.parent)this.parent._.panel.showAsChild=
(s,this.id,m,n,o,p);else =
s.showBlock(this.id,m,n,o,p);r.fire('menuShow',[s]);},hide:function(){thi=
s._.panel&&this._.panel.hide();}}});function =
l(m){m.sort(function(n,o){if(n.group<o.group)return-1;else =
if(n.group>o.group)return 1;return =
n.order<o.order?-1:n.order>o.order?1:0;});};})();a.menuItem=3De.createCla=
ss({$:function(l,m,n){var =
o=3Dthis;e.extend(o,n,{order:0,className:'cke_button_'+m});o.group=3Dl._.=
menuGroups[o.group];o.editor=3Dl;o.name=3Dm;},proto:{render:function(l,m,=
n){var u=3Dthis;var o=3Dl.id+String(m),p=3Dtypeof =
u.state=3D=3D'undefined'?2:u.state,q=3D' =
cke_'+(p=3D=3D1?'on':p=3D=3D0?'disabled':'off'),r=3Du.label;if(u.classNam=
e)q+=3D' '+u.className;var s=3Du.getItems;n.push('<span =
class=3D"cke_menuitem"><a id=3D"',o,'" class=3D"',q,'" =
href=3D"javascript:void(\'',(u.label||'').replace("'",''),'\')" =
title=3D"',u.label,'" tabindex=3D"-1"_cke_focus=3D1 hidefocus=3D"true" =
role=3D"menuitem"'+(s?'aria-haspopup=3D"true"':'')+(p=3D=3D0?'aria-disabl=
ed=3D"true"':'')+(p=3D=3D1?'aria-pressed=3D"true"':''));if(b.opera||b.gec=
ko&&b.mac)n.push(' onkeypress=3D"return false;"');if(b.gecko)n.push(' =
onblur=3D"this.style.cssText =3D this.style.cssText;"');var =
t=3D(u.iconOffset||0)*-16;n.push(' =
onmouseover=3D"CKEDITOR.tools.callFunction(',l._.itemOverFn,',',m,');" =
onmouseout=3D"CKEDITOR.tools.callFunction(',l._.itemOutFn,',',m,');" =
onclick=3D"CKEDITOR.tools.callFunction(',l._.itemClickFn,',',m,'); =
return false;"><span class=3D"cke_icon_wrapper"><span =
class=3D"cke_icon"'+(u.icon?' =
style=3D"background-image:url('+a.getUrl(u.icon)+');background-position:0=
 '+t+'px;"':'')+'></span></span>'+'<span class=3D"cke_label">');
if(s)n.push('<span =
class=3D"cke_menuarrow">','<span>&#',u.editor.lang.dir=3D=3D'rtl'?'9668':=
'9658',';</span>','</span>');n.push(r,'</span></a></span>');}}});i.menu_s=
ubMenuDelay=3D400;i.menu_groups=3D'clipboard,form,tablecell,tablecellprop=
erties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,=
textfield,hiddenfield,imagebutton,button,select,textarea,div';(function()=
{var l=3Dfunction(n,o){return =
n._.modes&&n._.modes[o||n.mode];},m;j.add('editingblock',{init:function(n=
){if(!n.config.editingBlock)return;n.on('themeSpace',function(o){if(o.dat=
a.space=3D=3D'contents')o.data.html+=3D'<br>';});n.on('themeLoaded',funct=
ion(){n.fireOnce('editingBlockReady');});n.on('uiReady',function(){n.setM=
ode(n.config.startupMode);});n.on('afterSetData',function(){if(!m){functi=
on =
o(){m=3Dtrue;l(n).loadData(n.getData());m=3Dfalse;};if(n.mode)o();else =
n.on('mode',function(){o();n.removeListener('mode',arguments.callee);});}=
});n.on('beforeGetData',function(){if(!m&&n.mode){m=3Dtrue;n.setData(l(n)=
.getData());m=3Dfalse;}});n.on('getSnapshot',function(o){if(n.mode)o.data=
=3Dl(n).getSnapshotData();});n.on('loadSnapshot',function(o){if(n.mode)l(=
n).loadSnapshotData(o.data);});n.on('mode',function(o){o.removeListener()=
;b.webkit&&n.container.on('focus',function(){n.focus();});if(n.config.sta=
rtupFocus)n.focus();setTimeout(function(){n.fireOnce('instanceReady');a.f=
ire('instanceReady',null,n);},0);});}});a.editor.prototype.mode=3D'';a.ed=
itor.prototype.addMode=3Dfunction(n,o){o.name=3Dn;(this._.modes||(this._.=
modes=3D{}))[n]=3Do;};a.editor.prototype.setMode=3Dfunction(n){var =
o,p=3Dthis.getThemeSpace('contents'),q=3Dthis.checkDirty();if(this.mode){=
if(n=3D=3Dthis.mode)return;this.fire('beforeModeUnload');var =
r=3Dl(this);o=3Dr.getData();r.unload(p);this.mode=3D'';}p.setHtml('');var=
 s=3Dl(this,n);if(!s)throw '[CKEDITOR.editor.setMode] Unknown mode =
"'+n+'".';if(!q)this.on('mode',function(){this.resetDirty();this.removeLi=
stener('mode',arguments.callee);});s.load(p,typeof =
o!=3D'string'?this.getData():o);};a.editor.prototype.focus=3Dfunction(){v=
ar =
n=3Dl(this);if(n)n.focus();};})();i.startupMode=3D'wysiwyg';i.startupFocu=
s=3Dfalse;i.editingBlock=3Dtrue;(function(){function l(){var =
v=3Dthis;try{var =
s=3Dv.getSelection();if(!s||!s.document.getWindow().$)return;var =
t=3Ds.getStartElement(),u=3Dnew =
d.elementPath(t);if(!u.compare(v._.selectionPreviousPath)){v._.selectionP=
reviousPath=3Du;v.fire('selectionChange',{selection:s,path:u,element:t});=
}}catch(w){}};var m,n;function =
o(){n=3Dtrue;if(m)return;p.call(this);m=3De.setTimeout(p,200,this);};func=
tion p(){m=3Dnull;if(n){e.setTimeout(l,0,this);
n=3Dfalse;}};var =
q=3D{modes:{wysiwyg:1,source:1},exec:function(s){switch(s.mode){case =
'wysiwyg':s.document.$.execCommand('SelectAll',false,null);break;case =
'source':var =
t=3Ds.textarea.$;if(c)t.createTextRange().execCommand('SelectAll');else{t=
.selectionStart=3D0;t.selectionEnd=3Dt.value.length;}t.focus();}},canUndo=
:false};j.add('selection',{init:function(s){s.on('contentDom',function(){=
var t=3Ds.document,u=3Dt.getBody(),v=3Dt.getDocumentElement();if(c){var =
w,x,y=3D1;u.on('focusin',function(C){if(C.data.$.srcElement.nodeName!=3D'=
BODY')return;if(w){if(y)try{w.select();}catch(D){}w=3Dnull;}});u.on('focu=
s',function(){x=3Dtrue;B();});u.on('beforedeactivate',function(C){if(C.da=
ta.$.toElement)return;x=3Dfalse;y=3D1;});if(c&&b.version<8)s.on('blur',fu=
nction(C){s.document&&s.document.$.selection.empty();});v.on('mousedown',=
function(){y=3D0;});v.on('mouseup',function(){y=3D1;});if(c&&(b.ie7Compat=
||b.version<8||b.quirks))v.on('click',function(C){if(C.data.getTarget().g=
etName()=3D=3D'html')s.getSelection().getRanges()[0].select();});var =
z;u.on('mousedown',function(C){if(C.data.$.button=3D=3D2){var =
D=3Ds.document.$.selection;if(D.type=3D=3D'None')z=3Ds.window.getScrollPo=
sition();}A();});u.on('mouseup',function(C){if(C.data.$.button=3D=3D2&&z)=
{s.document.$.documentElement.scrollLeft=3Dz.x;s.document.$.documentEleme=
nt.scrollTop=3Dz.y;}z=3Dnull;x=3Dtrue;setTimeout(function(){B(true);},0);=
});u.on('keydown',A);u.on('keyup',function(){x=3Dtrue;B();});t.on('select=
ionchange',B);function A(){x=3Dfalse;};function B(C){if(x){var =
D=3Ds.document,E=3Ds.getSelection(),F=3DE&&E.getNative();if(C&&F&&F.type=3D=
=3D'None')if(!D.$.queryCommandEnabled('InsertImage')){e.setTimeout(B,50,t=
his,true);return;}var =
G;if(F&&F.type&&F.type!=3D'Control'&&(G=3DF.createRange())&&(G=3DG.parent=
Element())&&(G=3DG.nodeName)&&G.toLowerCase() in =
{input:1,textarea:1})return;w=3DF&&E.getRanges()[0];o.call(s);}};}else{t.=
on('mouseup',o,s);t.on('keyup',o,s);}});s.addCommand('selectAll',q);s.ui.=
addButton('SelectAll',{label:s.lang.selectAll,command:'selectAll'});s.sel=
ectionChange=3Do;}});a.editor.prototype.getSelection=3Dfunction(){return =
this.document&&this.document.getSelection();};a.editor.prototype.forceNex=
tSelectionCheck=3Dfunction(){delete =
this._.selectionPreviousPath;};g.prototype.getSelection=3Dfunction(){var =
s=3Dnew =
d.selection(this);return!s||s.isInvalid?null:s;};a.SELECTION_NONE=3D1;a.S=
ELECTION_TEXT=3D2;a.SELECTION_ELEMENT=3D3;d.selection=3Dfunction(s){var =
v=3Dthis;var t=3Ds.getCustomData('cke_locked_selection');if(t)return =
t;v.document=3Ds;v.isLocked=3Dfalse;v._=3D{cache:{}};if(c){var =
u=3Dv.getNative().createRange();if(!u||u.item&&u.item(0).ownerDocument!=3D=
v.document.$||u.parentElement&&u.parentElement().ownerDocument!=3Dv.docum=
ent.$)v.isInvalid=3Dtrue;
}return v;};var =
r=3D{img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:=
1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,th:1,thead:1,tfo=
ot:1};d.selection.prototype=3D{getNative:c?function(){return =
this._.cache.nativeSel||(this._.cache.nativeSel=3Dthis.document.$.selecti=
on);}:function(){return =
this._.cache.nativeSel||(this._.cache.nativeSel=3Dthis.document.getWindow=
().$.getSelection());},getType:c?function(){var =
s=3Dthis._.cache;if(s.type)return s.type;var t=3D1;try{var =
u=3Dthis.getNative(),v=3Du.type;if(v=3D=3D'Text')t=3D2;if(v=3D=3D'Control=
')t=3D3;if(u.createRange().parentElement)t=3D2;}catch(w){}return =
s.type=3Dt;}:function(){var s=3Dthis._.cache;if(s.type)return s.type;var =
t=3D2,u=3Dthis.getNative();if(!u)t=3D1;else if(u.rangeCount=3D=3D1){var =
v=3Du.getRangeAt(0),w=3Dv.startContainer;if(w=3D=3Dv.endContainer&&w.node=
Type=3D=3D1&&v.endOffset-v.startOffset=3D=3D1&&r[w.childNodes[v.startOffs=
et].nodeName.toLowerCase()])t=3D3;}return =
s.type=3Dt;},getRanges:(function(){var s=3Dc?(function(){var =
t=3Dfunction(u,v){u=3Du.duplicate();u.collapse(v);var =
w=3Du.parentElement(),x=3Dw.childNodes,y;for(var =
z=3D0;z<x.length;z++){var =
A=3Dx[z];if(A.nodeType=3D=3D1){y=3Du.duplicate();y.moveToElementText(A);v=
ar =
B=3Dy.compareEndPoints('StartToStart',u),C=3Dy.compareEndPoints('EndToSta=
rt',u);y.collapse();if(B>0)break;else =
if(!B||C=3D=3D1&&B=3D=3D-1)return{container:w,offset:z};else =
if(!C)return{container:w,offset:z+1};y=3Dnull;}}if(!y){y=3Du.duplicate();=
y.moveToElementText(w);y.collapse(false);}y.setEndPoint('StartToStart',u)=
;var =
D=3Dy.text.replace(/(\r\n|\r)/g,'\n').length;try{while(D>0)D-=3Dx[--z].no=
deValue.length;}catch(E){D=3D0;}if(D=3D=3D=3D0)return{container:w,offset:=
z};else return{container:x[z],offset:-D};};return function(){var =
E=3Dthis;var =
u=3DE.getNative(),v=3Du&&u.createRange(),w=3DE.getType(),x;if(!u)return[]=
;if(w=3D=3D2){x=3Dnew d.range(E.document);var =
y=3Dt(v,true);x.setStart(new =
d.node(y.container),y.offset);y=3Dt(v);x.setEnd(new =
d.node(y.container),y.offset);return[x];}else if(w=3D=3D3){var =
z=3D[];for(var A=3D0;A<v.length;A++){var =
B=3Dv.item(A),C=3DB.parentNode,D=3D0;x=3Dnew =
d.range(E.document);for(;D<C.childNodes.length&&C.childNodes[D]!=3DB;D++)=
{}x.setStart(new d.node(C),D);x.setEnd(new =
d.node(C),D+1);z.push(x);}return z;}return[];};})():function(){var =
t=3D[],u,v=3Dthis.document,w=3Dthis.getNative();if(!w)return =
t;if(!w.rangeCount){u=3Dnew =
d.range(v);u.moveToElementEditStart(v.getBody());t.push(u);}for(var =
x=3D0;x<w.rangeCount;x++){var y=3Dw.getRangeAt(x);u=3Dnew =
d.range(v);u.setStart(new =
d.node(y.startContainer),y.startOffset);u.setEnd(new =
d.node(y.endContainer),y.endOffset);t.push(u);}return t;
};return function(t){var u=3Dthis._.cache;if(u.ranges&&!t)return =
u.ranges;else if(!u.ranges)u.ranges=3Dnew =
d.rangeList(s.call(this));if(t){var v=3Du.ranges;for(var =
w=3D0;w<v.length;w++){var =
x=3Dv[w],y=3Dx.getCommonAncestor();if(y.isReadOnly())v.splice(w,1);if(x.c=
ollapsed)continue;var =
z=3Dx.startContainer,A=3Dx.endContainer,B=3Dx.startOffset,C=3Dx.endOffset=
,D=3Dx.clone(),E;if(E=3Dz.isReadOnly())x.setStartAfter(E);if(z&&z.type=3D=
=3D3)if(B>=3Dz.getLength())D.setStartAfter(z);else =
D.setStartBefore(z);if(A&&A.type=3D=3D3)if(!C)D.setEndBefore(A);else =
D.setEndAfter(A);var F=3Dnew =
d.walker(D);F.evaluator=3Dfunction(G){if(G.type=3D=3D1&&G.getAttribute('c=
ontenteditable')=3D=3D'false'){var =
H=3Dx.clone();x.setEndBefore(G);if(x.collapsed)v.splice(w--,1);if(!(G.get=
Position(D.endContainer)&16)){H.setStartAfter(G);if(!H.collapsed)v.splice=
(w+1,0,H);}return true;}return false;};F.next();}}return =
u.ranges;};})(),getStartElement:function(){var z=3Dthis;var =
s=3Dz._.cache;if(s.startElement!=3D=3Dundefined)return =
s.startElement;var t,u=3Dz.getNative();switch(z.getType()){case 3:return =
z.getSelectedElement();case 2:var =
v=3Dz.getRanges()[0];if(v)if(!v.collapsed){v.optimize();for(;;){var =
w=3Dv.startContainer,x=3Dv.startOffset;if(x=3D=3D(w.getChildCount?w.getCh=
ildCount():w.getLength())&&!w.isBlockBoundary())v.setStartAfter(w);else =
break;}t=3Dv.startContainer;if(t.type!=3D1)return =
t.getParent();t=3Dt.getChild(v.startOffset);if(!t||t.type!=3D1)return =
v.startContainer;var =
y=3Dt.getFirst();while(y&&y.type=3D=3D1){t=3Dy;y=3Dy.getFirst();}return =
t;}if(c){v=3Du.createRange();v.collapse(true);t=3Dv.parentElement();}else=
{t=3Du.anchorNode;if(t&&t.nodeType!=3D1)t=3Dt.parentNode;}}return =
s.startElement=3Dt?new h(t):null;},getSelectedElement:function(){var =
s=3Dthis._.cache;if(s.selectedElement!=3D=3Dundefined)return =
s.selectedElement;var t=3Dthis,u=3De.tryThese(function(){return =
t.getNative().createRange().item(0);},function(){var =
v=3Dt.getRanges()[0],w,x;for(var =
y=3D2;y&&!((w=3Dv.getEnclosedNode())&&w.type=3D=3D1&&r[w.getName()]&&(x=3D=
w));y--)v.shrink(1);return x.$;});return s.selectedElement=3Du?new =
h(u):null;},lock:function(){var =
s=3Dthis;s.getRanges();s.getStartElement();s.getSelectedElement();s._.cac=
he.nativeSel=3D{};s.isLocked=3Dtrue;s.document.setCustomData('cke_locked_=
selection',s);},unlock:function(s){var x=3Dthis;var =
t=3Dx.document,u=3Dt.getCustomData('cke_locked_selection');if(u){t.setCus=
tomData('cke_locked_selection',null);if(s){var =
v=3Du.getSelectedElement(),w=3D!v&&u.getRanges();x.isLocked=3Dfalse;x.res=
et();t.getBody().focus();if(v)x.selectElement(v);else =
x.selectRanges(w);}}if(!u||!s){x.isLocked=3Dfalse;x.reset();}},reset:func=
tion(){this._.cache=3D{};
},selectElement:function(s){var v=3Dthis;if(v.isLocked){var t=3Dnew =
d.range(v.document);t.setStartBefore(s);t.setEndAfter(s);v._.cache.select=
edElement=3Ds;v._.cache.startElement=3Ds;v._.cache.ranges=3Dnew =
d.rangeList(t);v._.cache.type=3D3;return;}if(c){v.getNative().empty();try=
{t=3Dv.document.$.body.createControlRange();t.addElement(s.$);t.select();=
}catch(w){t=3Dv.document.$.body.createTextRange();t.moveToElementText(s.$=
);t.select();}finally{v.document.fire('selectionchange');}v.reset();}else=
{t=3Dv.document.$.createRange();t.selectNode(s.$);var =
u=3Dv.getNative();u.removeAllRanges();u.addRange(t);v.reset();}},selectRa=
nges:function(s){var =
C=3Dthis;if(C.isLocked){C._.cache.selectedElement=3Dnull;C._.cache.startE=
lement=3Ds[0]&&s[0].getTouchedStartNode();C._.cache.ranges=3Dnew =
d.rangeList(s);C._.cache.type=3D2;return;}if(c){if(s.length>1){var =
t=3Ds[s.length-1];s[0].setEnd(t.endContainer,t.endOffset);s.length=3D1;}i=
f(s[0])s[0].select();C.reset();}else{var =
u=3DC.getNative();if(s.length)u.removeAllRanges();for(var =
v=3D0;v<s.length;v++){if(v<s.length-1){var =
w=3Ds[v],x=3Ds[v+1],y=3Dw.clone();y.setStart(w.endContainer,w.endOffset);=
y.setEnd(x.startContainer,x.startOffset);if(!y.collapsed){y.shrink(1,true=
);if(y.getCommonAncestor().isReadOnly()){x.setStart(w.startContainer,w.st=
artOffset);s.splice(v--,1);continue;}}}var =
z=3Ds[v],A=3DC.document.$.createRange(),B=3Dz.startContainer;if(z.collaps=
ed&&(b.opera||b.gecko&&b.version<10900)&&B.type=3D=3D1&&!B.getChildCount(=
))B.appendText('');A.setStart(B.$,z.startOffset);A.setEnd(z.endContainer.=
$,z.endOffset);u.addRange(A);}C.reset();}},createBookmarks:function(s){re=
turn =
this.getRanges().createBookmarks(s);},createBookmarks2:function(s){return=
 this.getRanges().createBookmarks2(s);},selectBookmarks:function(s){var =
t=3D[];for(var u=3D0;u<s.length;u++){var v=3Dnew =
d.range(this.document);v.moveToBookmark(s[u]);t.push(v);}this.selectRange=
s(t);return this;},getCommonAncestor:function(){var =
s=3Dthis.getRanges(),t=3Ds[0].startContainer,u=3Ds[s.length-1].endContain=
er;return t.getCommonAncestor(u);},scrollIntoView:function(){var =
s=3Dthis.getStartElement();s.scrollIntoView();}};})();(function(){var =
l=3Dd.walker.whitespaces(true),m=3D/\ufeff|\u00a0/,n=3D{table:1,tbody:1,t=
r:1};d.range.prototype.select=3Dc?function(o){var y=3Dthis;var =
p=3Dy.collapsed,q,r;if(y.startContainer.type=3D=3D1&&y.startContainer.get=
Name() in n||y.endContainer.type=3D=3D1&&y.endContainer.getName() in =
n)y.shrink(1,true);var =
s=3Dy.createBookmark(),t=3Ds.startNode,u;if(!p)u=3Ds.endNode;var =
v=3Dy.document.$.body.createTextRange();v.moveToElementText(t.$);v.moveSt=
art('character',1);
if(u){var =
w=3Dy.document.$.body.createTextRange();w.moveToElementText(u.$);v.setEnd=
Point('EndToEnd',w);v.moveEnd('character',-1);}else{var =
x=3Dt.getNext(l);q=3D!(x&&x.getText&&x.getText().match(m))&&(o||!t.hasPre=
vious()||t.getPrevious().is&&t.getPrevious().is('br'));r=3Dy.document.cre=
ateElement('span');r.setHtml('&#65279;');r.insertBefore(t);if(q)y.documen=
t.createText('\ufeff').insertBefore(t);}y.setStartBefore(t);t.remove();if=
(p){if(q){v.moveStart('character',-1);v.select();y.document.$.selection.c=
lear();}else =
v.select();y.moveToPosition(r,3);r.remove();}else{y.setEndBefore(u);u.rem=
ove();v.select();}y.document.fire('selectionchange');}:function(){var =
r=3Dthis;var =
o=3Dr.startContainer;if(r.collapsed&&o.type=3D=3D1&&!o.getChildCount())o.=
append(new d.text(''));var =
p=3Dr.document.$.createRange();p.setStart(o.$,r.startOffset);try{p.setEnd=
(r.endContainer.$,r.endOffset);}catch(s){if(s.toString().indexOf('NS_ERRO=
R_ILLEGAL_VALUE')>=3D0){r.collapse(true);p.setEnd(r.endContainer.$,r.endO=
ffset);}else throw s;}var =
q=3Dr.document.getSelection().getNative();q.removeAllRanges();q.addRange(=
p);};})();(function(){var l=3D{elements:{$:function(m){var =
n=3Dm.attributes,o=3Dn&&n._cke_realelement,p=3Do&&new =
a.htmlParser.fragment.fromHtml(decodeURIComponent(o)),q=3Dp&&p.children[0=
];if(q&&m.attributes._cke_resizable){var =
r=3Dm.attributes.style;if(r){var =
s=3D/(?:^|\s)width\s*:\s*(\d+)/i.exec(r),t=3Ds&&s[1];s=3D/(?:^|\s)height\=
s*:\s*(\d+)/i.exec(r);var =
u=3Ds&&s[1];if(t)q.attributes.width=3Dt;if(u)q.attributes.height=3Du;}}re=
turn =
q;}}};j.add('fakeobjects',{requires:['htmlwriter'],afterInit:function(m){=
var =
n=3Dm.dataProcessor,o=3Dn&&n.htmlFilter;if(o)o.addRules(l);}});})();a.edi=
tor.prototype.createFakeElement=3Dfunction(l,m,n,o){var =
p=3Dthis.lang.fakeobjects,q=3D{'class':m,src:a.getUrl('images/spacer.gif'=
),_cke_realelement:encodeURIComponent(l.getOuterHtml()),_cke_real_node_ty=
pe:l.type,alt:p[n]||p.unknown,align:l.getAttribute('align')||''};if(n)q._=
cke_real_element_type=3Dn;if(o)q._cke_resizable=3Do;return =
this.document.createElement('img',{attributes:q});};a.editor.prototype.cr=
eateFakeParserElement=3Dfunction(l,m,n,o){var =
p=3Dthis.lang.fakeobjects,q,r=3Dnew =
a.htmlParser.basicWriter();l.writeHtml(r);q=3Dr.getHtml();var =
s=3D{'class':m,src:a.getUrl('images/spacer.gif'),_cke_realelement:encodeU=
RIComponent(q),_cke_real_node_type:l.type,alt:p[n]||p.unknown,align:l.att=
ributes.align||''};if(n)s._cke_real_element_type=3Dn;if(o)s._cke_resizabl=
e=3Do;return new =
a.htmlParser.element('img',s);};a.editor.prototype.restoreRealElement=3Df=
unction(l){if(l.getAttribute('_cke_real_node_type')!=3D1)return null;
return =
h.createFromHtml(decodeURIComponent(l.getAttribute('_cke_realelement')),t=
his.document);};j.add('richcombo',{requires:['floatpanel','listblock','bu=
tton'],beforeInit:function(l){l.ui.addHandler(3,k.richCombo.handler);}});=
a.UI_RICHCOMBO=3D3;k.richCombo=3De.createClass({$:function(l){var =
n=3Dthis;e.extend(n,l,{title:l.label,modes:{wysiwyg:1}});var =
m=3Dn.panel||{};delete =
n.panel;n.id=3De.getNextNumber();n.document=3Dm&&m.parent&&m.parent.getDo=
cument()||a.document;m.className=3D(m.className||'')+' =
cke_rcombopanel';m.block=3D{multiSelect:m.multiSelect,attributes:m.attrib=
utes};n._=3D{panelDefinition:m,items:{},state:2};},statics:{handler:{crea=
te:function(l){return new =
k.richCombo(l);}}},proto:{renderHtml:function(l){var =
m=3D[];this.render(l,m);return m.join('');},render:function(l,m){var =
n=3Db,o=3D'cke_'+this.id,p=3De.addFunction(function(s){var v=3Dthis;var =
t=3Dv._;if(t.state=3D=3D0)return;v.createPanel(l);if(t.on){t.panel.hide()=
;return;}if(!t.committed){t.list.commit();t.committed=3D1;}var =
u=3Dv.getValue();if(u)t.list.mark(u);else =
t.list.unmarkAll();t.panel.showBlock(v.id,new =
h(s),4);},this),q=3D{id:o,combo:this,focus:function(){var =
s=3Da.document.getById(o).getChild(1);s.focus();},clickFn:p};l.on('mode',=
function(){this.setState(this.modes[l.mode]?2:0);},this);var =
r=3De.addFunction(function(s,t){s=3Dnew d.event(s);var =
u=3Ds.getKeystroke();switch(u){case 13:case 32:case =
40:e.callFunction(p,t);break;default:q.onkey(q,u);}s.preventDefault();});=
q.keyDownFn=3Dr;m.push('<span class=3D"cke_rcombo">','<span =
id=3D',o);if(this.className)m.push(' class=3D"',this.className,' =
cke_off"');m.push('>','<span id=3D"'+o+'_label" =
class=3Dcke_label>',this.label,'</span>','<a hidefocus=3Dtrue =
title=3D"',this.title,'" =
tabindex=3D"-1"',n.gecko&&n.version>=3D10900&&!n.hc?'':" =
href=3D\"javascript:void('"+this.label+"')\"",' role=3D"button" =
aria-labelledby=3D"',o,'_label" aria-describedby=3D"',o,'_text" =
aria-haspopup=3D"true"');if(b.opera||b.gecko&&b.mac)m.push(' =
onkeypress=3D"return false;"');if(b.gecko)m.push(' =
onblur=3D"this.style.cssText =3D this.style.cssText;"');m.push(' =
onkeydown=3D"CKEDITOR.tools.callFunction( ',r,', event, this );" =
onclick=3D"CKEDITOR.tools.callFunction(',p,', this); return =
false;"><span><span id=3D"'+o+'_text" class=3D"cke_text =
cke_inline_label">'+this.label+'</span>'+'</span>'+'<span =
class=3Dcke_openbutton>'+(b.hc?'<span>&#9660;</span>':'')+'</span>'+'</a>=
'+'</span>'+'</span>');if(this.onRender)this.onRender();return =
q;},createPanel:function(l){if(this._.panel)return;var =
m=3Dthis._.panelDefinition,n=3Dthis._.panelDefinition.block,o=3Dm.parent|=
|a.document.getBody(),p=3Dnew =
k.floatPanel(l,o,m),q=3Dp.addListBlock(this.id,n),r=3Dthis;
p.onShow=3Dfunction(){if(r.className)this.element.getFirst().addClass(r.c=
lassName+'_panel');r.setState(1);q.focus(!r.multiSelect&&r.getValue());r.=
_.on=3D1;if(r.onOpen)r.onOpen();};p.onHide=3Dfunction(){if(r.className)th=
is.element.getFirst().removeClass(r.className+'_panel');r.setState(2);r._=
.on=3D0;if(r.onClose)r.onClose();};p.onEscape=3Dfunction(){p.hide();r.doc=
ument.getById('cke_'+r.id).getFirst().getNext().focus();};q.onClick=3Dfun=
ction(s,t){r.document.getWindow().focus();if(r.onClick)r.onClick.call(r,s=
,t);if(t)r.setValue(s,r._.items[s]);else =
r.setValue('');p.hide();};this._.panel=3Dp;this._.list=3Dq;p.getBlock(thi=
s.id).onHide=3Dfunction(){r._.on=3D0;r.setState(2);};if(this.init)this.in=
it();},setValue:function(l,m){var o=3Dthis;o._.value=3Dl;var =
n=3Do.document.getById('cke_'+o.id+'_text');if(!(l||m)){m=3Do.label;n.add=
Class('cke_inline_label');}else =
n.removeClass('cke_inline_label');n.setHtml(typeof =
m!=3D'undefined'?m:l);},getValue:function(){return =
this._.value||'';},unmarkAll:function(){this._.list.unmarkAll();},mark:fu=
nction(l){this._.list.mark(l);},hideItem:function(l){this._.list.hideItem=
(l);},hideGroup:function(l){this._.list.hideGroup(l);},showAll:function()=
{this._.list.showAll();},add:function(l,m,n){this._.items[l]=3Dn||l;this.=
_.list.add(l,m,n);},startGroup:function(l){this._.list.startGroup(l);},co=
mmit:function(){this._.list.commit();},setState:function(l){var =
m=3Dthis;if(m._.state=3D=3Dl)return;m.document.getById('cke_'+m.id).setSt=
ate(l);m._.state=3Dl;}}});k.prototype.addRichCombo=3Dfunction(l,m){this.a=
dd(l,3,m);};j.add('htmlwriter');a.htmlWriter=3De.createClass({base:a.html=
Parser.basicWriter,$:function(){var =
n=3Dthis;n.base();n.indentationChars=3D'\t';n.selfClosingEnd=3D' =
/>';n.lineBreakChars=3D'\n';n.forceSimpleAmpersand=3Dfalse;n.sortAttribut=
es=3Dtrue;n._.indent=3Dfalse;n._.indentation=3D'';n._.rules=3D{};var =
l=3Df;for(var m in =
e.extend({},l.$nonBodyContent,l.$block,l.$listItem,l.$tableContent))n.set=
Rules(m,{indent:true,breakBeforeOpen:true,breakAfterOpen:true,breakBefore=
Close:!l[m]['#'],breakAfterClose:true});n.setRules('br',{breakAfterOpen:t=
rue});n.setRules('title',{indent:false,breakAfterOpen:false});n.setRules(=
'style',{indent:false,breakBeforeClose:true});n.setRules('pre',{indent:fa=
lse});},proto:{openTag:function(l,m){var o=3Dthis;var =
n=3Do._.rules[l];if(o._.indent)o.indentation();else =
if(n&&n.breakBeforeOpen){o.lineBreak();o.indentation();}o._.output.push('=
<',l);},openTagClose:function(l,m){var o=3Dthis;var =
n=3Do._.rules[l];if(m)o._.output.push(o.selfClosingEnd);else{o._.output.p=
ush('>');if(n&&n.indent)o._.indentation+=3Do.indentationChars;
}if(n&&n.breakAfterOpen)o.lineBreak();},attribute:function(l,m){if(typeof=
 =
m=3D=3D'string'){this.forceSimpleAmpersand&&(m=3Dm.replace(/&amp;/g,'&'))=
;m=3De.htmlEncodeAttr(m);}this._.output.push(' =
',l,'=3D"',m,'"');},closeTag:function(l){var n=3Dthis;var =
m=3Dn._.rules[l];if(m&&m.indent)n._.indentation=3Dn._.indentation.substr(=
n.indentationChars.length);if(n._.indent)n.indentation();else =
if(m&&m.breakBeforeClose){n.lineBreak();n.indentation();}n._.output.push(=
'</',l,'>');if(m&&m.breakAfterClose)n.lineBreak();},text:function(l){if(t=
his._.indent){this.indentation();l=3De.ltrim(l);}this._.output.push(l);},=
comment:function(l){if(this._.indent)this.indentation();this._.output.pus=
h('<!--',l,'-->');},lineBreak:function(){var =
l=3Dthis;if(l._.output.length>0)l._.output.push(l.lineBreakChars);l._.ind=
ent=3Dtrue;},indentation:function(){this._.output.push(this._.indentation=
);this._.indent=3Dfalse;},setRules:function(l,m){var =
n=3Dthis._.rules[l];if(n)e.extend(n,m,true);else =
this._.rules[l]=3Dm;}}});j.add('menubutton',{requires:['button','contextm=
enu'],beforeInit:function(l){l.ui.addHandler(5,k.menuButton.handler);}});=
a.UI_MENUBUTTON=3D5;(function(){var l=3Dfunction(m){var =
n=3Dthis._;if(n.state=3D=3D=3D0)return;n.previousState=3Dn.state;var =
o=3Dn.menu;if(!o){o=3Dn.menu=3Dnew =
j.contextMenu(m);o.definition.panel.attributes['aria-label']=3Dm.lang.com=
mon.options;o.onHide=3De.bind(function(){this.setState(n.previousState);}=
,this);if(this.onMenu)o.addListener(this.onMenu);}if(n.on){o.hide();retur=
n;}this.setState(1);o.show(a.document.getById(this._.id),4);};k.menuButto=
n=3De.createClass({base:k.button,$:function(m){var n=3Dm.panel;delete =
m.panel;this.base(m);this.hasArrow=3Dtrue;this.click=3Dl;},statics:{handl=
er:{create:function(m){return new =
k.menuButton(m);}}}});})();j.add('dialogui');(function(){var =
l=3Dfunction(t){var =
w=3Dthis;w._||(w._=3D{});w._['default']=3Dw._.initValue=3Dt['default']||'=
';w._.required=3Dt.required||false;var u=3D[w._];for(var =
v=3D1;v<arguments.length;v++)u.push(arguments[v]);u.push(true);e.extend.a=
pply(e,u);return w._;},m=3D{build:function(t,u,v){return new =
k.dialog.textInput(t,u,v);}},n=3D{build:function(t,u,v){return new =
k.dialog[u.type](t,u,v);}},o=3D{build:function(t,u,v){var =
w=3Du.children,x,y=3D[],z=3D[];for(var =
A=3D0;A<w.length&&(x=3Dw[A]);A++){var =
B=3D[];y.push(B);z.push(a.dialog._.uiElementBuilders[x.type].build(t,x,B)=
);}return new =
k.dialog[u.type](t,z,y,v,u);}},p=3D{isChanged:function(){return =
this.getValue()!=3Dthis.getInitValue();},reset:function(t){this.setValue(=
this.getInitValue(),t);},setInitValue:function(){this._.initValue=3Dthis.=
getValue();
},resetInitValue:function(){this._.initValue=3Dthis._['default'];},getIni=
tValue:function(){return =
this._.initValue;}},q=3De.extend({},k.dialog.uiElement.prototype.eventPro=
cessors,{onChange:function(t,u){if(!this._.domOnChangeRegistered){t.on('l=
oad',function(){this.getInputElement().on('change',function(){if(!t.parts=
.dialog.isVisible())return;this.fire('change',{value:this.getValue()});},=
this);},this);this._.domOnChangeRegistered=3Dtrue;}this.on('change',u);}}=
,true),r=3D/^on([A-Z]\w+)/,s=3Dfunction(t){for(var u in =
t){if(r.test(u)||u=3D=3D'title'||u=3D=3D'type')delete t[u];}return =
t;};e.extend(k.dialog,{labeledElement:function(t,u,v,w){if(arguments.leng=
th<4)return;var =
x=3Dl.call(this,u);x.labelId=3De.getNextId()+'_label';var =
y=3Dthis._.children=3D[],z=3Dfunction(){var A=3D[],B=3Du.required?' =
cke_required':'';if(u.labelLayout!=3D'horizontal')A.push('<label =
class=3D"cke_dialog_ui_labeled_label'+B+'" ',' id=3D"'+x.labelId+'"',' =
for=3D"'+x.inputId+'"',' =
style=3D"'+u.labelStyle+'">',u.label,'</label>','<div =
class=3D"cke_dialog_ui_labeled_content" =
role=3D"presentation">',w.call(this,t,u),'</div>');else{var =
C=3D{type:'hbox',widths:u.widths,padding:0,children:[{type:'html',html:'<=
label class=3D"cke_dialog_ui_labeled_label'+B+'"'+' =
id=3D"'+x.labelId+'"'+' for=3D"'+x.inputId+'"'+' =
style=3D"'+u.labelStyle+'">'+e.htmlEncode(u.label)+'</span>'},{type:'html=
',html:'<span =
class=3D"cke_dialog_ui_labeled_content">'+w.call(this,t,u)+'</span>'}]};a=
.dialog._.uiElementBuilders.hbox.build(t,C,A);}return =
A.join('');};k.dialog.uiElement.call(this,t,u,v,'div',null,{role:'present=
ation'},z);},textInput:function(t,u,v){if(arguments.length<3)return;l.cal=
l(this,u);var =
w=3Dthis._.inputId=3De.getNextId()+'_textInput',x=3D{'class':'cke_dialog_=
ui_input_'+u.type,id:w,type:'text'},y;if(u.validate)this.validate=3Du.val=
idate;if(u.maxLength)x.maxlength=3Du.maxLength;if(u.size)x.size=3Du.size;=
if(u.controlStyle)x.style=3Du.controlStyle;var =
z=3Dthis,A=3Dfalse;t.on('load',function(){z.getInputElement().on('keydown=
',function(C){if(C.data.getKeystroke()=3D=3D13)A=3Dtrue;});z.getInputElem=
ent().on('keyup',function(C){if(C.data.getKeystroke()=3D=3D13&&A){t.getBu=
tton('ok')&&setTimeout(function(){t.getButton('ok').click();},0);A=3Dfals=
e;}},null,null,1000);});var B=3Dfunction(){var C=3D['<div =
class=3D"cke_dialog_ui_input_',u.type,'" =
role=3D"presentation"'];if(u.width)C.push('style=3D"width:'+u.width+'" =
');C.push('><input =
');x['aria-labelledby']=3Dthis._.labelId;this._.required&&(x['aria-requir=
ed']=3Dthis._.required);for(var D in x)C.push(D+'=3D"'+x[D]+'" =
');C.push(' /></div>');return =
C.join('');};k.dialog.labeledElement.call(this,t,u,v,B);
},textarea:function(t,u,v){if(arguments.length<3)return;l.call(this,u);va=
r =
w=3Dthis,x=3Dthis._.inputId=3De.getNextId()+'_textarea',y=3D{};if(u.valid=
ate)this.validate=3Du.validate;y.rows=3Du.rows||5;y.cols=3Du.cols||20;var=
 =
z=3Dfunction(){y['aria-labelledby']=3Dthis._.labelId;this._.required&&(y[=
'aria-required']=3Dthis._.required);var A=3D['<div =
class=3D"cke_dialog_ui_input_textarea" role=3D"presentation"><textarea =
class=3D"cke_dialog_ui_input_textarea" id=3D"',x,'" '];for(var B in =
y)A.push(B+'=3D"'+e.htmlEncode(y[B])+'" =
');A.push('>',e.htmlEncode(w._['default']),'</textarea></div>');return =
A.join('');};k.dialog.labeledElement.call(this,t,u,v,z);},checkbox:functi=
on(t,u,v){if(arguments.length<3)return;var =
w=3Dl.call(this,u,{'default':!!u['default']});if(u.validate)this.validate=
=3Du.validate;var x=3Dfunction(){var =
y=3De.extend({},u,{id:u.id?u.id+'_checkbox':e.getNextId()+'_checkbox'},tr=
ue),z=3D[],A=3De.getNextId()+'_label',B=3D{'class':'cke_dialog_ui_checkbo=
x_input',type:'checkbox','aria-labelledby':A};s(y);if(u['default'])B.chec=
ked=3D'checked';if(typeof =
y.controlStyle!=3D'undefined')y.style=3Dy.controlStyle;w.checkbox=3Dnew =
k.dialog.uiElement(t,y,z,'input',null,B);z.push(' <label id=3D"',A,'" =
for=3D"',B.id,'">',e.htmlEncode(u.label),'</label>');return =
z.join('');};k.dialog.uiElement.call(this,t,u,v,'span',null,null,x);},rad=
io:function(t,u,v){if(arguments.length<3)return;l.call(this,u);if(!this._=
['default'])this._['default']=3Dthis._.initValue=3Du.items[0][1];if(u.val=
idate)this.validate=3Du.valdiate;var w=3D[],x=3Dthis,y=3Dfunction(){var =
z=3D[],A=3D[],B=3D{'class':'cke_dialog_ui_radio_item','aria-labelledby':t=
his._.labelId},C=3Du.id?u.id+'_radio':e.getNextId()+'_radio';for(var =
D=3D0;D<u.items.length;D++){var =
E=3Du.items[D],F=3DE[2]!=3D=3Dundefined?E[2]:E[0],G=3DE[1]!=3D=3Dundefine=
d?E[1]:E[0],H=3De.getNextId()+'_radio_input',I=3DH+'_label',J=3De.extend(=
{},u,{id:H,title:null,type:null},true),K=3De.extend({},J,{title:F},true),=
L=3D{type:'radio','class':'cke_dialog_ui_radio_input',name:C,value:G,'ari=
a-labelledby':I},M=3D[];if(x._['default']=3D=3DG)L.checked=3D'checked';s(=
J);s(K);if(typeof =
J.controlStyle!=3D'undefined')J.style=3DJ.controlStyle;w.push(new =
k.dialog.uiElement(t,J,M,'input',null,L));M.push(' ');new =
k.dialog.uiElement(t,K,M,'label',null,{id:I,'for':L.id},E[0]);z.push(M.jo=
in(''));}new k.dialog.hbox(t,[],z,A);return =
A.join('');};k.dialog.labeledElement.call(this,t,u,v,y);this._.children=3D=
w;},button:function(t,u,v){if(!arguments.length)return;if(typeof =
u=3D=3D'function')u=3Du(t.getParentEditor());l.call(this,u,{disabled:u.di=
sabled||false});a.event.implementOn(this);var =
w=3Dthis;t.on('load',function(z){var A=3Dthis.getElement();
(function(){A.on('click',function(B){w.fire('click',{dialog:w.getDialog()=
});B.data.preventDefault();});A.on('keydown',function(B){if(B.data.getKey=
stroke() in =
{32:1}){w.click();B.data.preventDefault();}});})();A.unselectable();},thi=
s);var x=3De.extend({},u);delete x.style;var =
y=3De.getNextId()+'_label';k.dialog.uiElement.call(this,t,x,v,'a',null,{s=
tyle:u.style,href:'javascript:void(0)',title:u.label,hidefocus:'true','cl=
ass':u['class'],role:'button','aria-labelledby':y},'<span id=3D"'+y+'" =
class=3D"cke_dialog_ui_button">'+e.htmlEncode(u.label)+'</span>');},selec=
t:function(t,u,v){if(arguments.length<3)return;var =
w=3Dl.call(this,u);if(u.validate)this.validate=3Du.validate;w.inputId=3De=
.getNextId()+'_select';var x=3Dfunction(){var =
y=3De.extend({},u,{id:u.id?u.id+'_select':e.getNextId()+'_select'},true),=
z=3D[],A=3D[],B=3D{id:w.inputId,'class':'cke_dialog_ui_input_select','ari=
a-labelledby':this._.labelId};if(u.size!=3Dundefined)B.size=3Du.size;if(u=
.multiple!=3Dundefined)B.multiple=3Du.multiple;s(y);for(var =
C=3D0,D;C<u.items.length&&(D=3Du.items[C]);C++)A.push('<option =
value=3D"',e.htmlEncode(D[1]!=3D=3Dundefined?D[1]:D[0]),'" /> =
',e.htmlEncode(D[0]));if(typeof =
y.controlStyle!=3D'undefined')y.style=3Dy.controlStyle;w.select=3Dnew =
k.dialog.uiElement(t,y,z,'select',null,B,A.join(''));return =
z.join('');};k.dialog.labeledElement.call(this,t,u,v,x);},file:function(t=
,u,v){if(arguments.length<3)return;if(u['default']=3D=3D=3Dundefined)u['d=
efault']=3D'';var =
w=3De.extend(l.call(this,u),{definition:u,buttons:[]});if(u.validate)this=
.validate=3Du.validate;var =
x=3Dfunction(){w.frameId=3De.getNextId()+'_fileInput';var =
y=3Db.isCustomDomain(),z=3D['<iframe frameborder=3D"0" =
allowtransparency=3D"0" class=3D"cke_dialog_ui_input_file" =
id=3D"',w.frameId,'" title=3D"',u.label,'" =
src=3D"javascript:void('];z.push(y?"(function(){document.open();document.=
domain=3D'"+document.domain+"';"+'document.close();'+'})()':'0');z.push('=
)"></iframe>');return z.join('');};t.on('load',function(){var =
y=3Da.document.getById(w.frameId),z=3Dy.getParent();z.addClass('cke_dialo=
g_ui_input_file');});k.dialog.labeledElement.call(this,t,u,v,x);},fileBut=
ton:function(t,u,v){if(arguments.length<3)return;var =
w=3Dl.call(this,u),x=3Dthis;if(u.validate)this.validate=3Du.validate;var =
y=3De.extend({},u),z=3Dy.onClick;y.className=3D(y.className?y.className+'=
 ':'')+'cke_dialog_ui_button';y.onClick=3Dfunction(A){var =
B=3Du['for'];if(!z||z.call(this,A)!=3D=3Dfalse){t.getContentElement(B[0],=
B[1]).submit();this.disable();}};t.on('load',function(){t.getContentEleme=
nt(u['for'][0],u['for'][1])._.buttons.push(x);});k.dialog.button.call(thi=
s,t,y,v);
},html:(function(){var =
t=3D/^\s*<[\w:]+\s+([^>]*)?>/,u=3D/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)=
+)$/,v=3D/\/$/;return function(w,x,y){if(arguments.length<3)return;var =
z=3D[],A,B=3Dx.html,C,D;if(B.charAt(0)!=3D'<')B=3D'<span>'+B+'</span>';va=
r E=3Dx.focus;if(E){var =
F=3Dthis.focus;this.focus=3Dfunction(){F.call(this);typeof =
E=3D=3D'function'&&E.call(this);this.fire('focus');};if(x.isFocusable){va=
r =
G=3Dthis.isFocusable;this.isFocusable=3DG;}this.keyboardFocusable=3Dtrue;=
}k.dialog.uiElement.call(this,w,x,z,'span',null,null,'');A=3Dz.join('');C=
=3DA.match(t);D=3DB.match(u)||['','',''];if(v.test(D[1])){D[1]=3DD[1].sli=
ce(0,-1);D[2]=3D'/'+D[2];}y.push([D[1],' =
',C[1]||'',D[2]].join(''));};})(),fieldset:function(t,u,v,w,x){var =
y=3Dx.label,z=3Dfunction(){var =
A=3D[];y&&A.push('<legend>'+y+'</legend>');for(var =
B=3D0;B<v.length;B++)A.push(v[B]);return =
A.join('');};this._=3D{children:u};k.dialog.uiElement.call(this,t,x,w,'fi=
eldset',null,null,z);}},true);k.dialog.html.prototype=3Dnew =
k.dialog.uiElement();k.dialog.labeledElement.prototype=3De.extend(new =
k.dialog.uiElement(),{setLabel:function(t){var =
u=3Da.document.getById(this._.labelId);if(u.getChildCount()<1)new =
d.text(t,a.document).appendTo(u);else =
u.getChild(0).$.nodeValue=3Dt;return this;},getLabel:function(){var =
t=3Da.document.getById(this._.labelId);if(!t||t.getChildCount()<1)return =
'';else return =
t.getChild(0).getText();},eventProcessors:q},true);k.dialog.button.protot=
ype=3De.extend(new k.dialog.uiElement(),{click:function(){var =
t=3Dthis;if(!t._.disabled)return =
t.fire('click',{dialog:t._.dialog});t.getElement().$.blur();return =
false;},enable:function(){this._.disabled=3Dfalse;var =
t=3Dthis.getElement();t&&t.removeClass('disabled');},disable:function(){t=
his._.disabled=3Dtrue;this.getElement().addClass('disabled');},isVisible:=
function(){return =
this.getElement().getFirst().isVisible();},isEnabled:function(){return!th=
is._.disabled;},eventProcessors:e.extend({},k.dialog.uiElement.prototype.=
eventProcessors,{onClick:function(t,u){this.on('click',u);}},true),access=
KeyUp:function(){this.click();},accessKeyDown:function(){this.focus();},k=
eyboardFocusable:true},true);k.dialog.textInput.prototype=3De.extend(new =
k.dialog.labeledElement(),{getInputElement:function(){return =
a.document.getById(this._.inputId);},focus:function(){var =
t=3Dthis.selectParentTab();setTimeout(function(){var =
u=3Dt.getInputElement();u&&u.$.focus();},0);},select:function(){var =
t=3Dthis.selectParentTab();setTimeout(function(){var =
u=3Dt.getInputElement();if(u){u.$.focus();u.$.select();}},0);},accessKeyU=
p:function(){this.select();},setValue:function(t){!t&&(t=3D'');
return =
k.dialog.uiElement.prototype.setValue.apply(this,arguments);},keyboardFoc=
usable:true},p,true);k.dialog.textarea.prototype=3Dnew =
k.dialog.textInput();k.dialog.select.prototype=3De.extend(new =
k.dialog.labeledElement(),{getInputElement:function(){return =
this._.select.getElement();},add:function(t,u,v){var w=3Dnew =
h('option',this.getDialog().getParentEditor().document),x=3Dthis.getInput=
Element().$;w.$.text=3Dt;w.$.value=3Du=3D=3D=3Dundefined||u=3D=3D=3Dnull?=
t:u;if(v=3D=3D=3Dundefined||v=3D=3D=3Dnull){if(c)x.add(w.$);else =
x.add(w.$,null);}else x.add(w.$,v);return this;},remove:function(t){var =
u=3Dthis.getInputElement().$;u.remove(t);return =
this;},clear:function(){var =
t=3Dthis.getInputElement().$;while(t.length>0)t.remove(0);return =
this;},keyboardFocusable:true},p,true);k.dialog.checkbox.prototype=3De.ex=
tend(new k.dialog.uiElement(),{getInputElement:function(){return =
this._.checkbox.getElement();},setValue:function(t,u){this.getInputElemen=
t().$.checked=3Dt;!u&&this.fire('change',{value:t});},getValue:function()=
{return =
this.getInputElement().$.checked;},accessKeyUp:function(){this.setValue(!=
this.getValue());},eventProcessors:{onChange:function(t,u){if(!c)return =
q.onChange.apply(this,arguments);else{t.on('load',function(){var =
v=3Dthis._.checkbox.getElement();v.on('propertychange',function(w){w=3Dw.=
data.$;if(w.propertyName=3D=3D'checked')this.fire('change',{value:v.$.che=
cked});},this);},this);this.on('change',u);}return =
null;}},keyboardFocusable:true},p,true);k.dialog.radio.prototype=3De.exte=
nd(new k.dialog.uiElement(),{setValue:function(t,u){var =
v=3Dthis._.children,w;for(var =
x=3D0;x<v.length&&(w=3Dv[x]);x++)w.getElement().$.checked=3Dw.getValue()=3D=
=3Dt;!u&&this.fire('change',{value:t});},getValue:function(){var =
t=3Dthis._.children;for(var =
u=3D0;u<t.length;u++){if(t[u].getElement().$.checked)return =
t[u].getValue();}return null;},accessKeyUp:function(){var =
t=3Dthis._.children,u;for(u=3D0;u<t.length;u++){if(t[u].getElement().$.ch=
ecked){t[u].getElement().focus();return;}}t[0].getElement().focus();},eve=
ntProcessors:{onChange:function(t,u){if(!c)return =
q.onChange.apply(this,arguments);else{t.on('load',function(){var =
v=3Dthis._.children,w=3Dthis;for(var x=3D0;x<v.length;x++){var =
y=3Dv[x].getElement();y.on('propertychange',function(z){z=3Dz.data.$;if(z=
.propertyName=3D=3D'checked'&&this.$.checked)w.fire('change',{value:this.=
getAttribute('value')});});}},this);this.on('change',u);}return =
null;}},keyboardFocusable:true},p,true);k.dialog.file.prototype=3De.exten=
d(new k.dialog.labeledElement(),p,{getInputElement:function(){var =
t=3Da.document.getById(this._.frameId).getFrameDocument();
return t.$.forms.length>0?new =
h(t.$.forms[0].elements[0]):this.getElement();},submit:function(){this.ge=
tInputElement().getParent().$.submit();return =
this;},getAction:function(){return =
this.getInputElement().getParent().$.action;},registerEvents:function(t){=
var =
u=3D/^on([A-Z]\w+)/,v,w=3Dfunction(y,z,A,B){y.on('formLoaded',function(){=
y.getInputElement().on(A,B,y);});};for(var x in =
t){if(!(v=3Dx.match(u)))continue;if(this.eventProcessors[x])this.eventPro=
cessors[x].call(this,this._.dialog,t[x]);else =
w(this,this._.dialog,v[1].toLowerCase(),t[x]);}return =
this;},reset:function(){var =
t=3Da.document.getById(this._.frameId),u=3Dt.getFrameDocument(),v=3Dthis.=
_.definition,w=3Dthis._.buttons,x=3Dthis.formLoadedNumber,y=3Dthis.formUn=
loadNumber,z=3Dthis._.dialog._.editor.lang.dir,A=3Dthis._.dialog._.editor=
.langCode;if(!x){x=3Dthis.formLoadedNumber=3De.addFunction(function(){thi=
s.fire('formLoaded');},this);y=3Dthis.formUnloadNumber=3De.addFunction(fu=
nction(){this.getInputElement().clearCustomData();},this);this.getDialog(=
)._.editor.on('destroy',function(){e.removeFunction(x);e.removeFunction(y=
);});}function =
B(){u.$.open();if(b.isCustomDomain())u.$.domain=3Ddocument.domain;var =
C=3D'';if(v.size)C=3Dv.size-(c?7:0);u.$.write(['<html dir=3D"'+z+'" =
lang=3D"'+A+'"><head><title></title></head><body style=3D"margin: 0; =
overflow: hidden; background: transparent;">','<form =
enctype=3D"multipart/form-data" method=3D"POST" dir=3D"'+z+'" =
lang=3D"'+A+'" action=3D"',e.htmlEncode(v.action),'">','<input =
type=3D"file" name=3D"',e.htmlEncode(v.id||'cke_upload'),'" =
size=3D"',e.htmlEncode(C>0?C:''),'" =
/>','</form>','</body></html>','<script>window.parent.CKEDITOR.tools.call=
Function('+x+');','window.onbeforeunload =3D function() =
{window.parent.CKEDITOR.tools.callFunction('+y+')}</script>'].join(''));u=
.$.close();for(var =
D=3D0;D<w.length;D++)w[D].enable();};if(b.gecko)setTimeout(B,500);else =
B();},getValue:function(){return =
this.getInputElement().$.value;},setInitValue:function(){this._.initValue=
=3D'';},eventProcessors:{onChange:function(t,u){if(!this._.domOnChangeReg=
istered){this.on('formLoaded',function(){this.getInputElement().on('chang=
e',function(){this.fire('change',{value:this.getValue()});},this);},this)=
;this._.domOnChangeRegistered=3Dtrue;}this.on('change',u);}},keyboardFocu=
sable:true},true);k.dialog.fileButton.prototype=3Dnew =
k.dialog.button();k.dialog.fieldset.prototype=3De.clone(k.dialog.hbox.pro=
totype);a.dialog.addUIElement('text',m);a.dialog.addUIElement('password',=
m);a.dialog.addUIElement('textarea',n);a.dialog.addUIElement('checkbox',n=
);a.dialog.addUIElement('radio',n);
a.dialog.addUIElement('button',n);a.dialog.addUIElement('select',n);a.dia=
log.addUIElement('file',n);a.dialog.addUIElement('fileButton',n);a.dialog=
.addUIElement('html',n);a.dialog.addUIElement('fieldset',o);})();j.add('p=
anel',{beforeInit:function(l){l.ui.addHandler(2,k.panel.handler);}});a.UI=
_PANEL=3D2;k.panel=3Dfunction(l,m){var =
n=3Dthis;if(m)e.extend(n,m);e.extend(n,{className:'',css:[]});n.id=3De.ge=
tNextNumber();n.document=3Dl;n._=3D{blocks:{}};};k.panel.handler=3D{creat=
e:function(l){return new =
k.panel(l);}};k.panel.prototype=3D{renderHtml:function(l){var =
m=3D[];this.render(l,m);return m.join('');},render:function(l,m){var =
o=3Dthis;var n=3D'cke_'+o.id;m.push('<div class=3D"',l.skinClass,'" =
lang=3D"',l.langCode,'" role=3D"presentation" =
style=3D"display:none;z-index:'+(l.config.baseFloatZIndex+1)+'">'+'<div'+=
' id=3D',n,' dir=3D',l.lang.dir,' role=3D"presentation" =
class=3D"cke_panel cke_',l.lang.dir);if(o.className)m.push(' =
',o.className);m.push('">');if(o.forceIFrame||o.css.length){m.push('<ifra=
me id=3D"',n,'_frame" frameborder=3D"0" role=3D"application" =
src=3D"javascript:void(');m.push(b.isCustomDomain()?"(function(){document=
.open();document.domain=3D'"+document.domain+"';"+'document.close();'+'})=
()':'0');m.push(')"></iframe>');}m.push('</div></div>');return =
n;},getHolderElement:function(){var =
l=3Dthis._.holder;if(!l){if(this.forceIFrame||this.css.length){var =
m=3Dthis.document.getById('cke_'+this.id+'_frame'),n=3Dm.getParent(),o=3D=
n.getAttribute('dir'),p=3Dn.getParent().getAttribute('class'),q=3Dn.getPa=
rent().getAttribute('lang'),r=3Dm.getFrameDocument();r.$.open();if(b.isCu=
stomDomain())r.$.domain=3Ddocument.domain;var =
s=3De.addFunction(e.bind(function(u){this.isLoaded=3Dtrue;if(this.onLoad)=
this.onLoad();},this));r.$.write('<!DOCTYPE html><html dir=3D"'+o+'" =
class=3D"'+p+'_container" =
lang=3D"'+q+'">'+'<head>'+'<style>.'+p+'_container{visibility:hidden}</st=
yle>'+'</head>'+'<body class=3D"cke_'+o+' cke_panel_frame =
'+b.cssClass+'" style=3D"margin:0;padding:0"'+' onload=3D"( =
window.CKEDITOR || window.parent.CKEDITOR =
).tools.callFunction('+s+');"></body>'+e.buildStyleHtml(this.css)+'</html=
>');r.$.close();var =
t=3Dr.getWindow();t.$.CKEDITOR=3Da;r.on('keydown',function(u){var =
x=3Dthis;var =
v=3Du.data.getKeystroke(),w=3Dx.document.getById('cke_'+x.id).getAttribut=
e('dir');if(x._.onKeyDown&&x._.onKeyDown(v)=3D=3D=3Dfalse){u.data.prevent=
Default();return;}if(v=3D=3D27||v=3D=3D(w=3D=3D'rtl'?39:37))if(x.onEscape=
&&x.onEscape(v)=3D=3D=3Dfalse)u.data.preventDefault();},this);l=3Dr.getBo=
dy();l.unselectable();}else =
l=3Dthis.document.getById('cke_'+this.id);this._.holder=3Dl;}return =
l;},addBlock:function(l,m){var n=3Dthis;
m=3Dn._.blocks[l]=3Dm instanceof k.panel.block?m:new =
k.panel.block(n.getHolderElement(),m);if(!n._.currentBlock)n.showBlock(l)=
;return m;},getBlock:function(l){return =
this._.blocks[l];},showBlock:function(l){var =
m=3Dthis._.blocks,n=3Dm[l],o=3Dthis._.currentBlock,p=3Dthis.forceIFrame?t=
his.document.getById('cke_'+this.id+'_frame'):this._.holder;p.getParent()=
.getParent().disableContextMenu();if(o){p.removeAttributes(o.attributes);=
o.hide();}this._.currentBlock=3Dn;p.setAttributes(n.attributes);a.fire('a=
riaWidget',p);n._.focusIndex=3D-1;this._.onKeyDown=3Dn.onKeyDown&&e.bind(=
n.onKeyDown,n);n.onMark=3Dfunction(q){p.setAttribute('aria-activedescenda=
nt',q.getId()+'_option');};n.onUnmark=3Dfunction(){p.removeAttribute('ari=
a-activedescendant');};n.show();return =
n;},destroy:function(){this.element&&this.element.remove();}};k.panel.blo=
ck=3De.createClass({$:function(l,m){var =
n=3Dthis;n.element=3Dl.append(l.getDocument().createElement('div',{attrib=
utes:{tabIndex:-1,'class':'cke_panel_block',role:'presentation'},styles:{=
display:'none'}}));if(m)e.extend(n,m);if(!n.attributes.title)n.attributes=
.title=3Dn.attributes['aria-label'];n.keys=3D{};n._.focusIndex=3D-1;n.ele=
ment.disableContextMenu();},_:{markItem:function(l){var =
o=3Dthis;if(l=3D=3D-1)return;var =
m=3Do.element.getElementsByTag('a'),n=3Dm.getItem(o._.focusIndex=3Dl);if(=
b.webkit)n.getDocument().getWindow().focus();n.focus();o.onMark&&o.onMark=
(n);}},proto:{show:function(){this.element.setStyle('display','');},hide:=
function(){var =
l=3Dthis;if(!l.onHide||l.onHide.call(l)!=3D=3Dtrue)l.element.setStyle('di=
splay','none');},onKeyDown:function(l){var q=3Dthis;var =
m=3Dq.keys[l];switch(m){case 'next':var =
n=3Dq._.focusIndex,o=3Dq.element.getElementsByTag('a'),p;while(p=3Do.getI=
tem(++n)){if(p.getAttribute('_cke_focus')&&p.$.offsetWidth){q._.focusInde=
x=3Dn;p.focus();break;}}return false;case =
'prev':n=3Dq._.focusIndex;o=3Dq.element.getElementsByTag('a');while(n>0&&=
(p=3Do.getItem(--n))){if(p.getAttribute('_cke_focus')&&p.$.offsetWidth){q=
._.focusIndex=3Dn;p.focus();break;}}return false;case =
'click':n=3Dq._.focusIndex;p=3Dn>=3D0&&q.element.getElementsByTag('a').ge=
tItem(n);if(p)p.$.click?p.$.click():p.$.onclick();return false;}return =
true;}}});j.add('listblock',{requires:['panel'],onLoad:function(){k.panel=
.prototype.addListBlock=3Dfunction(l,m){return this.addBlock(l,new =
k.listBlock(this.getHolderElement(),m));};k.listBlock=3De.createClass({ba=
se:k.panel.block,$:function(l,m){var p=3Dthis;m=3Dm||{};var =
n=3Dm.attributes||(m.attributes=3D{});(p.multiSelect=3D!!m.multiSelect)&&=
(n['aria-multiselectable']=3Dtrue);!n.role&&(n.role=3D'listbox');
p.base.apply(p,arguments);var =
o=3Dp.keys;o[40]=3D'next';o[9]=3D'next';o[38]=3D'prev';o[2000+9]=3D'prev'=
;o[32]=3D'click';p._.pendingHtml=3D[];p._.items=3D{};p._.groups=3D{};},_:=
{close:function(){if(this._.started){this._.pendingHtml.push('</ul>');del=
ete =
this._.started;}},getClick:function(){if(!this._.click)this._.click=3De.a=
ddFunction(function(l){var n=3Dthis;var =
m=3Dtrue;if(n.multiSelect)m=3Dn.toggle(l);else =
n.mark(l);if(n.onClick)n.onClick(l,m);},this);return =
this._.click;}},proto:{add:function(l,m,n){var q=3Dthis;var =
o=3Dq._.pendingHtml,p=3D'cke_'+e.getNextNumber();if(!q._.started){o.push(=
'<ul role=3D"presentation" =
class=3Dcke_panel_list>');q._.started=3D1;q._.size=3Dq._.size||0;}q._.ite=
ms[l]=3Dp;o.push('<li id=3D',p,' class=3Dcke_panel_listItem><a =
id=3D"',p,'_option" _cke_focus=3D1 hidefocus=3Dtrue title=3D"',n||l,'" =
href=3D"javascript:void(\'',l,'\')" =
onclick=3D"CKEDITOR.tools.callFunction(',q._.getClick(),",'",l,"'); =
return false;\"",' role=3D"option" aria-posinset=3D"'+ =
++q._.size+'">',m||l,'</a></li>');},startGroup:function(l){this._.close()=
;var =
m=3D'cke_'+e.getNextNumber();this._.groups[l]=3Dm;this._.pendingHtml.push=
('<h1 role=3D"presentation" id=3D',m,' =
class=3Dcke_panel_grouptitle>',l,'</h1>');},commit:function(){var =
o=3Dthis;o._.close();o.element.appendHtml(o._.pendingHtml.join(''));var =
l=3Do._.items,m=3Do.element.getDocument();for(var n in =
l)m.getById(l[n]+'_option').setAttribute('aria-setsize',o._.size);delete =
o._.size;o._.pendingHtml=3D[];},toggle:function(l){var =
m=3Dthis.isMarked(l);if(m)this.unmark(l);else =
this.mark(l);return!m;},hideGroup:function(l){var =
m=3Dthis.element.getDocument().getById(this._.groups[l]),n=3Dm&&m.getNext=
();if(m){m.setStyle('display','none');if(n&&n.getName()=3D=3D'ul')n.setSt=
yle('display','none');}},hideItem:function(l){this.element.getDocument().=
getById(this._.items[l]).setStyle('display','none');},showAll:function(){=
var =
l=3Dthis._.items,m=3Dthis._.groups,n=3Dthis.element.getDocument();for(var=
 o in l)n.getById(l[o]).setStyle('display','');for(var p in m){var =
q=3Dn.getById(m[p]),r=3Dq.getNext();q.setStyle('display','');if(r&&r.getN=
ame()=3D=3D'ul')r.setStyle('display','');}},mark:function(l){var =
o=3Dthis;if(!o.multiSelect)o.unmarkAll();var =
m=3Do._.items[l],n=3Do.element.getDocument().getById(m);n.addClass('cke_s=
elected');o.element.getDocument().getById(m+'_option').setAttribute('aria=
-selected',true);o.element.setAttribute('aria-activedescendant',m+'_optio=
n');o.onMark&&o.onMark(n);},unmark:function(l){var =
m=3Dthis;m.element.getDocument().getById(m._.items[l]).removeClass('cke_s=
elected');m.onUnmark&&m.onUnmark(m._.items[l]);},unmarkAll:function(){var=
 o=3Dthis;
var l=3Do._.items,m=3Do.element.getDocument();for(var n in =
l)m.getById(l[n]).removeClass('cke_selected');o.onUnmark&&o.onUnmark();},=
isMarked:function(l){return =
this.element.getDocument().getById(this._.items[l]).hasClass('cke_selecte=
d');},focus:function(l){this._.focusIndex=3D-1;if(l){var =
m=3Dthis.element.getDocument().getById(this._.items[l]).getFirst(),n=3Dth=
is.element.getElementsByTag('a'),o,p=3D-1;while(o=3Dn.getItem(++p)){if(o.=
equals(m)){this._.focusIndex=3Dp;break;}}setTimeout(function(){m.focus();=
},0);}}}});}});a.themes.add('default',(function(){function l(m,n){var =
o,p;p=3Dm.config.sharedSpaces;p=3Dp&&p[n];p=3Dp&&a.document.getById(p);if=
(p){var q=3D'<span class=3D"cke_shared"><span class=3D"'+m.skinClass+' =
cke_editor_'+m.name+'">'+'<span class=3D"'+b.cssClass+'">'+'<span =
class=3D"cke_wrapper cke_'+m.lang.dir+'">'+'<span =
class=3D"cke_editor">'+'<div =
class=3D"cke_'+n+'">'+'</div></span></span></span></span></span>',r=3Dp.a=
ppend(h.createFromHtml(q,p.getDocument()));if(p.getCustomData('cke_hassha=
red'))r.hide();else =
p.setCustomData('cke_hasshared',1);o=3Dr.getChild([0,0,0,0]);m.on('focus'=
,function(){for(var =
s=3D0,t,u=3Dp.getChildren();t=3Du.getItem(s);s++){if(t.type=3D=3D1&&!t.eq=
uals(r)&&t.hasClass('cke_shared'))t.hide();}r.show();});m.on('destroy',fu=
nction(){r.remove();});}return o;};return{build:function(m,n){var =
o=3Dm.name,p=3Dm.element,q=3Dm.elementMode;if(!p||q=3D=3D0)return;if(q=3D=
=3D1)p.hide();var =
r=3Dm.fire('themeSpace',{space:'top',html:''}).html,s=3Dm.fire('themeSpac=
e',{space:'contents',html:''}).html,t=3Dm.fireOnce('themeSpace',{space:'b=
ottom',html:''}).html,u=3Ds&&m.config.height,v=3Dm.config.tabIndex||m.ele=
ment.getAttribute('tabindex')||0;if(!s)u=3D'auto';else =
if(!isNaN(u))u+=3D'px';var =
w=3D'',x=3Dm.config.width;if(x){if(!isNaN(x))x+=3D'px';w+=3D'width: =
'+x+';';}var =
y=3Dr&&l(m,'top'),z=3Dl(m,'bottom');y&&(y.setHtml(r),r=3D'');z&&(z.setHtm=
l(t),t=3D'');var A=3Dh.createFromHtml(['<span id=3D"cke_',o,'" =
onmousedown=3D"return false;" class=3D"',m.skinClass,' cke_editor_',o,'" =
dir=3D"',m.lang.dir,'" title=3D"',b.gecko?' ':'','" =
lang=3D"',m.langCode,'"'+(b.webkit?' tabindex=3D"'+v+'"':'')+' =
role=3D"application"'+' aria-labelledby=3D"cke_',o,'_arialbl"'+(w?' =
style=3D"'+w+'"':'')+'>'+'<span id=3D"cke_',o,'_arialbl" =
class=3D"cke_voice_label">'+m.lang.editor+'</span>'+'<span =
class=3D"',b.cssClass,'" role=3D"presentation"><span =
class=3D"cke_wrapper cke_',m.lang.dir,'" role=3D"presentation"><table =
class=3D"cke_editor" border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
role=3D"presentation"><tbody><tr',r?'':' style=3D"display:none"',' =
role=3D"presentation"><td id=3D"cke_top_',o,'" class=3D"cke_top" =
role=3D"presentation">',r,'</td></tr><tr',s?'':' =
style=3D"display:none"',' role=3D"presentation"><td =
id=3D"cke_contents_',o,'" class=3D"cke_contents" style=3D"height:',u,'" =
role=3D"presentation">',s,'</td></tr><tr',t?'':' =
style=3D"display:none"',' role=3D"presentation"><td =
id=3D"cke_bottom_',o,'" class=3D"cke_bottom" =
role=3D"presentation">',t,'</td></tr></tbody></table><style>.',m.skinClas=
s,'{visibility:hidden;}</style></span></span></span>'].join(''));
A.getChild([1,0,0,0,0]).unselectable();A.getChild([1,0,0,0,2]).unselectab=
le();if(q=3D=3D1)A.insertAfter(p);else =
p.append(A);m.container=3DA;A.disableContextMenu();m.fireOnce('themeLoade=
d');m.fireOnce('uiReady');},buildDialog:function(m){var =
n=3De.getNextNumber(),o=3Dh.createFromHtml(['<div =
class=3D"cke_editor_'+m.name.replace('.','\\.')+'_dialog =
cke_skin_',m.skinName,'" dir=3D"',m.lang.dir,'" lang=3D"',m.langCode,'" =
role=3D"dialog" aria-labelledby=3D"%title#"><table =
class=3D"cke_dialog',' '+b.cssClass,' cke_',m.lang.dir,'" =
style=3D"position:absolute" role=3D"presentation"><tr><td =
role=3D"presentation"><div class=3D"%body" role=3D"presentation"><div =
id=3D"%title#" class=3D"%title" role=3D"presentation"></div><a =
id=3D"%close_button#" class=3D"%close_button" =
href=3D"javascript:void(0)" title=3D"'+m.lang.common.close+'" =
role=3D"button"><span class=3D"cke_label">X</span></a>'+'<div =
id=3D"%tabs#" class=3D"%tabs" role=3D"tablist"></div>'+'<table =
class=3D"%contents" role=3D"presentation"><tr>'+'<td id=3D"%contents#" =
class=3D"%contents" role=3D"presentation"></td>'+'</tr></table>'+'<div =
id=3D"%footer#" class=3D"%footer" =
role=3D"presentation"></div>'+'</div>'+'<div id=3D"%tl#" =
class=3D"%tl"></div>'+'<div id=3D"%tc#" class=3D"%tc"></div>'+'<div =
id=3D"%tr#" class=3D"%tr"></div>'+'<div id=3D"%ml#" =
class=3D"%ml"></div>'+'<div id=3D"%mr#" class=3D"%mr"></div>'+'<div =
id=3D"%bl#" class=3D"%bl"></div>'+'<div id=3D"%bc#" =
class=3D"%bc"></div>'+'<div id=3D"%br#" =
class=3D"%br"></div>'+'</td></tr>'+'</table>',c?'':'<style>.cke_dialog{vi=
sibility:hidden;}</style>','</div>'].join('').replace(/#/g,'_'+n).replace=
(/%/g,'cke_dialog_')),p=3Do.getChild([0,0,0,0,0]),q=3Dp.getChild(0),r=3Dp=
.getChild(1);q.unselectable();r.unselectable();return{element:o,parts:{di=
alog:o.getChild(0),title:q,close:r,tabs:p.getChild(2),contents:p.getChild=
([3,0,0,0]),footer:p.getChild(4)}};},destroy:function(m){var =
n=3Dm.container;n.clearCustomData();m.element.clearCustomData();if(n)n.re=
move();if(m.elementMode=3D=3D1)m.element.show();delete =
m.element;}};})());a.editor.prototype.getThemeSpace=3Dfunction(l){var =
m=3D'cke_'+l,n=3Dthis._[m]||(this._[m]=3Da.document.getById(m+'_'+this.na=
me));return n;};a.editor.prototype.resize=3Dfunction(l,m,n,o){var =
p=3Dthis.container,q=3Da.document.getById('cke_contents_'+this.name),r=3D=
o?p.getChild(1):p;b.webkit&&r.setStyle('display','none');r.setSize('width=
',l,true);if(b.webkit){r.$.offsetWidth;r.setStyle('display','');}var =
s=3Dn?0:(r.$.offsetHeight||0)-(q.$.clientHeight||0);q.setStyle('height',M=
ath.max(m-s,0)+'px');this.fire('resize');};a.editor.prototype.getResizabl=
e=3Dfunction(){return this.container.getChild(1);
};})();

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Public/javascript/ckeditor/adapters/jquery.js

=EF=BB=BF/*
Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights =
reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/

(function(){CKEDITOR.config.jqueryOverrideVal=3Dtypeof =
CKEDITOR.config.jqueryOverrideVal=3D=3D'undefined'?true:CKEDITOR.config.j=
queryOverrideVal;var a=3Dwindow.jQuery;if(typeof =
a=3D=3D'undefined')return;a.extend(a.fn,{ckeditorGet:function(){var =
b=3Dthis.eq(0).data('ckeditorInstance');if(!b)throw 'CKEditor not yet =
initialized, use ckeditor() with callback.';return =
b;},ckeditor:function(b,c){if(!a.isFunction(b)){var =
d=3Dc;c=3Db;b=3Dd;}c=3Dc||{};this.filter('textarea, div, =
p').each(function(){var =
e=3Da(this),f=3De.data('ckeditorInstance'),g=3De.data('_ckeditorInstanceL=
ock'),h=3Dthis;if(f&&!g){if(b)b.apply(f,[this]);}else =
if(!g){if(c.autoUpdateElement||typeof =
c.autoUpdateElement=3D=3D'undefined'&&CKEDITOR.config.autoUpdateElement)c=
.autoUpdateElementJquery=3Dtrue;c.autoUpdateElement=3Dfalse;e.data('_cked=
itorInstanceLock',true);f=3DCKEDITOR.replace(h,c);e.data('ckeditorInstanc=
e',f);f.on('instanceReady',function(i){var =
j=3Di.editor;setTimeout(function(){if(!j.element){setTimeout(arguments.ca=
llee,100);return;}i.removeListener('instanceReady',this.callee);j.on('dat=
aReady',function(){e.trigger('setData.ckeditor',[j]);});j.on('getData',fu=
nction(l){e.trigger('getData.ckeditor',[j,l.data]);},999);j.on('destroy',=
function(){e.trigger('destroy.ckeditor',[j]);});if(j.config.autoUpdateEle=
mentJquery&&e.is('textarea')&&e.parents('form').length){var =
k=3Dfunction(){e.ckeditor(function(){j.updateElement();});};e.parents('fo=
rm').submit(k);e.parents('form').bind('form-pre-serialize',k);e.bind('des=
troy.ckeditor',function(){e.parents('form').unbind('submit',k);e.parents(=
'form').unbind('form-pre-serialize',k);});}j.on('destroy',function(){e.da=
ta('ckeditorInstance',null);});e.data('_ckeditorInstanceLock',null);e.tri=
gger('instanceReady.ckeditor',[j]);if(b)b.apply(j,[h]);},0);},null,null,9=
999);}else CKEDITOR.on('instanceReady',function(i){var =
j=3Di.editor;setTimeout(function(){if(!j.element){setTimeout(arguments.ca=
llee,100);return;}if(j.element.$=3D=3Dh)if(b)b.apply(j,[h]);},0);},null,n=
ull,9999);});return =
this;}});if(CKEDITOR.config.jqueryOverrideVal)a.fn.val=3DCKEDITOR.tools.o=
verride(a.fn.val,function(b){return function(c,d){var e=3Dtypeof =
c!=3D'undefined',f;this.each(function(){var =
g=3Da(this),h=3Dg.data('ckeditorInstance');if(!d&&g.is('textarea')&&h){if=
(e)h.setData(c);else{f=3Dh.getData();return null;}}else =
if(e)b.call(g,c);else{f=3Db.call(g);return null;}return true;});return =
e?this:f;};});})();

------=_NextPart_000_0072_01CC865E.16C1F700
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: https://www.craftonhills.edu/ProgramReview/Public/javascript/site.js

=EF=BB=BF/// <reference path=3D"jquery-1.6.1-vsdoc.js" />

var isSubmit =3D false;

$().ready(function () {
    if ($('.int32-editor').length > 0) {
        $('.int32-editor').spinner({ min: 1, max: 1000, increment: =
'fast' });
    }
    if ($('.date-editor').length > 0) {
        $('.date-editor').datepicker({
            showButtonPanel: true,
            changeMonth: true,
            changeYear: true,
            showOn: "button",
            buttonImageOnly: true,
            buttonImage: ProgramReview.datePicker.image,
            showAnim: "",
            duration: 0,
            dateFormat: 'mm/dd/yy',
            defaultDate: ProgramReview.datePicker.defaultDate,
            minDate: ProgramReview.datePicker.minDate,
            maxDate: ProgramReview.datePicker.maxDate
        });
    }
    if ($('.ckeditor').length > 0) {
        $('.ckeditor').ckeditor();
    }
    if ($('#print-page').length > 0) {
        $('#print-page').html(' or you can <a href=3D"#print">print this =
page</a>');
        $('#print-page a').click(function () {
            $("div.collapsible-body").show();
            window.print();
            return false;
        });
    }
    if ($("div.collapsible").length > 0) {
        $("div.collapsible-body").hide();
        $("div.collapsible-header").children().wrapInner("<a =
href=3D\"#\"></a>");
        $("div.collapsible-header a").click(function () {
            =
$(this).parent().parent().next("div.collapsible-body").slideToggle(600);
            return false;
        });
    }

    if ($("input[type=3Dtext], select, .ckeditor, =
input[type=3Dcheckbox], input[type=3Dsubmit]").not($(".noChangeDetection =
*")).length > 0) {
        $("input[type=3Dtext], select, =
.ckeditor").not($(".noChangeDetection *")).each(function () {
            $(this).data("initial_value", $.trim($(this).val()));
        });
        $("input[type=3Dcheckbox]").not($(".noChangeDetection =
*")).each(function () {
            $(this).data("initial_value", $(this).prop('checked'));
        });
        $("input[type=3Dsubmit]").each(function () {
            $(this).bind("click", function () {
                isSubmit =3D true;
            });
        });

        $(window).bind("beforeunload", function () {
            if (!isSubmit && formHasChanged()) {
//                if (ProgramReview.autoSave) {
//                    var hasSaved =3D false;
//                    jQuery('form.autoSave').ajaxSubmit({
//                        url: ProgramReview.autoSave.url,
//                        async: false,
//                        data: {
//                            "Submit": "AutoSave"
//                        },
//                        success: function (data, statusText, xhr, =
$form) {
//                            if (data.message =3D=3D "undefined") {
//                                data.message =3D "Unknown Error (no =
returned message)";
//                            }
//                            if (data.success) {
//                                jQuery.jGrowl("<div =
class=3D\"success\">" + data.message + "</div>", { header: 'Auto Save' =
});
//                                hasSaved =3D true;
//                            } else {
//                                jQuery.jGrowl("<div =
class=3D\"failure\">" + "Failed due to error: " + data.message + =
"</div>", { header: 'Auto Save', sticky: true });
//                            }
//                        }
//                    });

//                    if (!hasSaved) {
//                        return "Unable to perform auto save. If you =
continue, your changes will be lost.";
//                    }

//                } else {
                    return "Changes have been detected on this page. If =
you continue, they will be lost.";
//                }
            }
        });
    }
});

function formHasChanged() {
    hasChanged =3D false;
    $("input[type=3Dtext], select, .ckeditor").not($(".noChangeDetection =
*")).each(function () {
        if ($.trim($(this).val()) !=3D $(this).data("initial_value")) {
            //alert(this.id + ": '" + $.trim($(this).val()) + "' was '" =
+ $(this).data('initial_value') + "'");
            hasChanged =3D true;
        }
    });
    $("input[type=3Dcheckbox]").not($(".noChangeDetection =
*")).each(function () {
        if ($(this).prop('checked') !=3D $(this).data("initial_value")) =
{
            //alert(this.id + ": '" + $.trim($(this).val()) + "' was '" =
+ $(this).data('initial_value') + "'");
            hasChanged =3D true;
        }
    });

    return hasChanged;
}

------=_NextPart_000_0072_01CC865E.16C1F700--
